Sobes.tech
Junior — Middle

Как се осъществява запазването на данни вътре във ViewModel в Android приложения?

sobes.tech AI

Отговор от AI

В Android ViewModel съхранява данни, които трябва да оцелеят след промени в конфигурацията (например завъртане на екрана). За това ViewModel запазва състоянието в своите полета, и при повторно създаване на Activity или Fragment данните остават достъпни.

Ако е необходимо да се запазят данни при пълно унищожаване на приложението, се използва SavedStateHandle — специален обект, който позволява запазване и възстановяване на състоянието.

Пример за използване на ViewModel с SavedStateHandle:

class MyViewModel(private val state: SavedStateHandle) : ViewModel() {
    var userName: String?
        get() = state["userName"]
        set(value) {
            state["userName"] = value
        }
}

По този начин данните вътре във ViewModel се съхраняват в паметта, а при необходимост — в SavedStateHandle за възстановяване след унищожаване на процеса.