Junior — Middle
Kaip vyksta duomenų saugojimas ViewModel viduje Android programose?
sobes.tech AI
Atsakymas iš AI
Android'e ViewModel saugo duomenis, kurie turi išlikti po konfigūracijos pakeitimų (pvz., ekrano pasukimo). Tam ViewModel laiko būseną savo laukuose, ir kai kuriant naują Activity ar Fragment, duomenys lieka prieinami.
Jei reikia išsaugoti duomenis visiškai sunaikinus programą, naudojamas SavedStateHandle — specialus objektas, leidžiantis išsaugoti ir atkurti būseną.
Pavyzdys, kaip naudoti ViewModel su SavedStateHandle:
class MyViewModel(private val state: SavedStateHandle) : ViewModel() {
var userName: String?
get() = state["userName"]
set(value) {
state["userName"] = value
}
}
Taip, duomenys ViewModel viduje saugomi atmintyje, o jei reikia, — SavedStateHandle, kad būtų galima juos atkurti po proceso sunaikinimo.