Ktorý mechanizmus je lepší na uloženie stavu UI: ViewModel alebo SaveInstanceState, a v čom sa líšia?
sobes.tech AI
Odpoveď od AI
ViewModel a SaveInstanceState slúžia na uchovávanie stavu používateľského rozhrania, ale fungujú odlišne a sú určené na rôzne úlohy.
-
ViewModel ukladá údaje do pamäte počas zmien konfigurácie (napríklad otočenie obrazovky). Žije tak dlho ako aktivita alebo fragment, a pri opätovnom vytvorení UI nie je ničený. Je vhodný na ukladanie veľkých objemov dát a biznis logiky.
-
SaveInstanceState je mechanizmus na ukladanie malých dát do balíčka (Bundle), ktorý sa zachováva pri zničení aktivity systémom (napríklad pri nedostatku pamäte). Dáta zo SaveInstanceState sa obnovujú pri znovu vytvorení aktivity.
Čo je lepšie použiť?
- Na uchovanie stavu UI, ktorý má prežiť otáčanie obrazovky, je lepšie použiť ViewModel.
- Na uchovanie kritických dát, ktoré majú byť obnovené po úplnom zničení aplikácie systémom, sa používa SaveInstanceState.
Často sa kombinujú: ViewModel pre hlavnú logiku a údaje, SaveInstanceState pre malé primitívne údaje, ktoré je potrebné rýchlo obnoviť.