Junior — Middle
Как се осъществява запазването на данни вътре във ViewModel в Android приложения?
sobes.tech AI
Отговор от AI
В Android ViewModel съхранява данни, които трябва да оцелеят след промени в конфигурацията (например завъртане на екрана). За това ViewModel запазва състоянието в своите полета, и при повторно създаване на Activity или Fragment данните остават достъпни.
Ако е необходимо да се запазят данни при пълно унищожаване на приложението, се използва SavedStateHandle — специален обект, който позволява запазване и възстановяване на състоянието.
Пример за използване на ViewModel с SavedStateHandle:
class MyViewModel(private val state: SavedStateHandle) : ViewModel() {
var userName: String?
get() = state["userName"]
set(value) {
state["userName"] = value
}
}
По този начин данните вътре във ViewModel се съхраняват в паметта, а при необходимост — в SavedStateHandle за възстановяване след унищожаване на процеса.