Sobes.tech
Junior — Middle

Jak je zajištěno ukládání dat uvnitř ViewModel v Android aplikacích?

sobes.tech AI

Odpověď od AI

V Androidu ukládá ViewModel data, která musí přežít změny konfigurace (například otočení obrazovky). K tomu ViewModel uchovává stav ve svých polích, a při znovuvytvoření Activity nebo Fragment jsou data stále dostupná.

Pokud je třeba data uložit při úplném zničení aplikace, používá se SavedStateHandle — speciální objekt umožňující ukládání a obnovu stavu.

Příklad použití ViewModel s SavedStateHandle:

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

Tímto způsobem jsou data uvnitř ViewModelu uložena v paměti, a pokud je potřeba, v SavedStateHandle pro obnovení po zničení procesu.