Sobes.tech
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.