Como salvar um estado de Atividade Android usando Estado de instância de Save?

salvar e restaurar um estado UI de actividade é uma parte importante da experiência do utilizador. Em tais casos, o cliente espera que o estado da IU continue como antes, no entanto, o quadro demole a ação e qualquer estado presente nele. Você pode ter visto durante o teste que a rotação de tela repõe todas as informações recolhidas do cliente. O mesmo acontece quando um usuário pressiona o botão de trás por engano. A rotação de tela é uma das inúmeras mudanças do ciclo de vida no Android que pode destruir e reiniciar a atividade e fazer com que todas as informações sejam perdidas. Definitivamente não é uma experiência de usuário extraordinária!

a fim de salvar e restaurar o estado UI, eu sobreponho dois métodos mais comuns para este propósito:

Alt Text

onSaveInstanceState ():

a fim de salvar os estados da IU, sobreponho-me ao onsaveinstancestato (savedinstancestato em feixe) e guardo todos os dados da IU no feixe de savedinstancestato.Este método é chamado antes do onStop () em versões mais antigas do Android (till android 8.0) e pode ser chamado depois do onStop () para versões mais recentes.

@Override
public void onSaveInstanceState (Bundle savedInstanceState) {
super.onSaveInstanceState (savedInstanceState);
// Save UI state changes to the savedInstanceState.
/ / este feixe será passado para o oncreato se o processo for
// morto e reiniciado.SavedInstanceState.putBoolean (“StringKeyForBoolean”, false);
savedInstanceState.putDouble (“StringKeyForDouble”, 3.4);
savedInstanceState.putInt (“StringKeyForInteger”, 5);
savedInstanceState.putString (“StringKey”, “Folio3/blog”);
/ etc.
}

o pacote é essencialmente uma forma de armazenar um mapa NVP (“Par Nome-Valor”), e ele será passado para onRestoreInstanceState (), onde você iria então extrair os valores como este:

Alt Text

This method is called after onStart ().

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState (savedInstanceState);
// restaurar o estado UI usando savedInstanceState.

Var1 = savedinstancestato . getbooleano (“StringKeyForBoolean”, false);
Var2 = savedInstanceState.getDouble (“StringKeyForDouble”);
Var3 = savedInstanceState.getInt (“StringKeyForInteger”);
Var4 = savedInstanceState.getString (“StringKey”);

}

usando desta forma, você pode salvar todos os estados e outras variáveis de dados que podem ser perdidos na rotação de tela ou quando a atividade atual vai para o fundo. Salvar e restaurar estados da IU é uma boa prática no desenvolvimento de aplicativos android.
Nota: Quando uma atividade é criada pela primeira vez não haverá dados no pacote de Estado save instance.

confira este guia se estiver a planear lançar uma aplicação.



+