Որ մեխանիզմն է ավելի լավ՝ UI-ի վիճակը պահպանելու համար՝ ViewModel թե SaveInstanceState, և ինչ տարբերություններ ունեն:
sobes.tech AI
Պատասխան AI-ից
ViewModel և SaveInstanceState ծառայում են UI-ի վիճակի պահպանման համար, բայց աշխատում են տարբեր կերպ և նախատեսված են տարբեր առաջադրանքների համար:
-
ViewModel պահում է տվյալները հիշողության մեջ կոնֆիգուրացիայի փոփոխությունների ժամանակ (օրինակ, էկրանին պտտում): Նա ապրում է այնքան ժամանակ, որքան Activity կամ Fragment-ը, և չի ոչնչացվում UI-ի վերականգնման ժամանակ: Համապատասխան է մեծ ծավալի տվյալների և բիզնես-լոգիկայի համար:
-
SaveInstanceState — դա փոքր տվյալների պահպանում մեխանիզմ է Bundle-ում, որը պահվում է, երբ համակարգը ոչնչացնում է Activity-ն (օրինակ, հիշողության պակասի դեպքում): SaveInstanceState-ից տվյալները վերականգնվում են Activity-ի նորից ստեղծման ժամանակ:
Ինչն է ավելի լավ օգտագործել?
- UI-ի վիճակի պահպանման համար, որը պետք է անցնի էկրանին պտտվելու ժամանակ, ավելի լավ է օգտագործել ViewModel:
- Կրիտիկական տվյալների պահպանման համար, որոնք պետք է վերականգնվեն համակարգի կողմից ամբողջովին ոչնչացնելուց հետո, օգտագործվում է SaveInstanceState:
Նրանք հաճախ համակցվում են՝ հիմնական տրամաբանության և տվյալների համար ViewModel, փոքր primitív տվյալների համար՝ արագ վերականգնման համար SaveInstanceState։