Como garantir a preservação do estado atual do sistema ao alterar a configuração?
sobes.tech IA
Resposta da IA
No Android, para guardar o estado atual do sistema ao alterar a configuração (por exemplo, rotação da tela), utiliza-se o mecanismo de salvaguarda do estado da Activity ou Fragment.
Principais métodos:
-
onSaveInstanceState(Bundle outState) — método onde podem ser guardados os dados necessários num objeto Bundle. Estes dados estarão disponíveis ao recriar a Activity no método onCreate ou onRestoreInstanceState.
-
ViewModel — componente dos componentes arquiteturais do Android, que guarda dados ao alterar a configuração e não é recriado juntamente com a Activity.
-
Guardar o estado dos componentes UI — muitos widgets padrão guardam automaticamente o seu estado se tiverem um identificador único.
Exemplo de guardar o estado de um contador:
class MainActivity : AppCompatActivity() {
private var counter = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
counter = savedInstanceState?.getInt("counter_key") ?: 0
// atualizar a UI com o valor atual do counter
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("counter_key", counter)
}
}
Assim, ao alterar a configuração, os dados não se perdem e o utilizador verá a mesma interface e estado.