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