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-ով՝ գործընթացի ոչնչացումից հետո վերականգնելու համար։