Sobes.tech
Junior — Middle

Hogyan történik az adatok mentése a ViewModel-ben Android alkalmazásokban?

sobes.tech MI

Válasz az MI-től

Androidben a ViewModel olyan adatokat tárol, amelyeknek túl kell élniük a konfigurációs változásokat (például a képernyő forgatását). Ehhez a ViewModel az állapotát a mezőiben tartja, és az Activity vagy Fragment újraalkotásakor az adatok elérhetőek maradnak.

Ha az alkalmazás teljes megsemmisítése esetén kell adatokat menteni, akkor a SavedStateHandle-t használják — egy speciális objektumot, amely lehetővé teszi az állapot mentését és visszaállítását.

A SavedStateHandle használatának példája a ViewModel-lel:

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

Így a ViewModel belső adatai memóriában tárolódnak, és szükség esetén a SavedStateHandle segítségével a folyamat megsemmisítése után is visszaállíthatóak.