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.