Junior — Middle
Ako sa vykonáva ukladanie údajov vo vnútri ViewModel v Android aplikáciách?
sobes.tech AI
Odpoveď od AI
V Androidu, ViewModel uchováva údaje, ktoré musia prežiť zmeny konfigurácie (napríklad otočenie obrazovky). Na tento účel ViewModel uchováva stav vo svojich poliach a pri opätovnom vytvorení Activity alebo Fragment zostávajú údaje dostupné.
Ak je potrebné uložiť údaje pri úplnom zničení aplikácie, používa sa SavedStateHandle — špeciálny objekt, ktorý umožňuje uložiť a obnoviť stav.
Príklad použitia ViewModel s SavedStateHandle:
class MyViewModel(private val state: SavedStateHandle) : ViewModel() {
var userName: String?
get() = state["userName"]
set(value) {
state["userName"] = value
}
}
Takto sa údaje vo vnútri ViewModelu ukladajú do pamäte a v prípade potreby — do SavedStateHandle na obnovenie po zničení procesu.