Qual mecanismo é melhor para guardar o estado da interface de utilizador: ViewModel ou SaveInstanceState, e em que é que eles diferem?
sobes.tech IA
Resposta da IA
O ViewModel e o SaveInstanceState servem para guardar o estado da interface do utilizador, mas funcionam de forma diferente e destinam-se a tarefas distintas.
-
ViewModel guarda dados na memória durante alterações de configuração (por exemplo, rotação de ecrã). Vive tanto quanto a Activity ou Fragment, e não é destruído ao recriar a UI. É adequado para armazenar grandes volumes de dados e lógica de negócio.
-
SaveInstanceState é um mecanismo para guardar pequenos dados num Bundle, que é preservado quando a Activity é destruída pelo sistema (por exemplo, por falta de memória). Os dados do SaveInstanceState são restaurados ao recriar a Activity.
O que é melhor usar?
- Para guardar o estado da UI que deve sobreviver à rotação do ecrã, é melhor usar o ViewModel.
- Para guardar dados críticos que devem ser restaurados após a destruição completa da aplicação pelo sistema, usa-se o SaveInstanceState.
São frequentemente combinados: ViewModel para a lógica principal e dados, SaveInstanceState para pequenos dados primitivos que precisam de ser restaurados rapidamente.