Welke mechanisme is beter om de staat van de gebruikersinterface op te slaan: ViewModel of SaveInstanceState, en waarin verschillen ze?
sobes.tech AI
Antwoord van AI
ViewModel en SaveInstanceState dienen om de UI-toestand op te slaan, maar werken op verschillende manieren en zijn voor verschillende taken bedoeld.
-
ViewModel slaat gegevens op in het geheugen tijdens configuratiewijzigingen (bijvoorbeeld schermrotatie). Het leeft zo lang als de Activity of Fragment, en wordt niet vernietigd bij het opnieuw maken van de UI. Het is geschikt voor het opslaan van grote hoeveelheden gegevens en bedrijfslogica.
-
SaveInstanceState is een mechanisme om kleine gegevens op te slaan in een Bundle, die wordt behouden wanneer de Activity door het systeem wordt vernietigd (bijvoorbeeld bij geheugen tekort). De gegevens uit SaveInstanceState worden hersteld bij het opnieuw maken van de Activity.
Wat is beter om te gebruiken?
- Voor het opslaan van UI-toestand die de schermrotatie moet overleven, is het beter om ViewModel te gebruiken.
- Voor het opslaan van kritieke gegevens die na volledige vernietiging van de app door het systeem moeten worden hersteld, wordt SaveInstanceState gebruikt.
Ze worden vaak gecombineerd: ViewModel voor de hoofdlogica en gegevens, SaveInstanceState voor kleine primitieve gegevens die snel moeten worden hersteld.