Sobes.tech
Junior — Middle

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.