Koji mehanizam je bolji za čuvanje stanja UI-ja: ViewModel ili SaveInstanceState, i po čemu se razlikuju?
sobes.tech АИ
Одговор од АИ
ViewModel i SaveInstanceState služe za čuvanje stanja UI, ali rade na različite načine i namenjeni su za različite zadatke.
-
ViewModel čuva podatke u memoriji tokom promena konfiguracije (npr. rotacija ekrana). On traje koliko i Activity ili Fragment i ne uništava se pri ponovnom kreiranju UI. Pogodan je za čuvanje velikih količina podataka i poslovne logike.
-
SaveInstanceState je mehanizam za čuvanje malih podataka u Bundle-u, koji se čuva kada sistem uništi Activity (npr. usled nedostatka memorije). Podaci iz SaveInstanceState se obnavljaju pri ponovnom kreiranju Activity.
Šta je bolje koristiti?
- Za čuvanje stanja UI koje mora preživeti rotaciju ekrana, bolje je koristiti ViewModel.
- Za čuvanje kritičnih podataka koji treba da se obnove nakon potpunog uništenja aplikacije od strane sistema, koristi se SaveInstanceState.
Često se kombinuju: ViewModel za glavnu logiku i podatke, SaveInstanceState za male primitivne podatke koje je potrebno brzo obnoviti.