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.