Salvare e ripristinare uno stato dell’interfaccia utente di attività è una parte importante dell’esperienza utente. In questi casi, il client si aspetta che lo stato dell’interfaccia utente continui come prima, tuttavia, il framework demolisce l’azione e qualsiasi stato presente in esso. Potresti aver visto durante il test che la rotazione dello schermo ripristina tutte le informazioni raccolte dal client. Lo stesso vale quando un utente preme il pulsante indietro per errore. La rotazione dello schermo è uno dei numerosi cambiamenti del ciclo di vita in Android che può distruggere e ripristinare l’attività e causare la perdita di tutte le informazioni. Sicuramente non una straordinaria esperienza utente!
per Salvare e Ripristinare lo stato dell’interfaccia utente, l’override due metodi più comuni per questo scopo:
onSaveInstanceState():
per salvare stati di interfaccia utente, l’override onSaveInstanceState(Bundle savedInstanceState) e salvare tutti i dati dell’interfaccia utente in Bundle savedInstanceState.
Questo metodo viene chiamato prima di onStop() nelle versioni precedenti di Android (fino ad Android 8.0) e può essere chiamato dopo onStop() per le versioni più recenti.
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState (savedInstanceState);
// Salva le modifiche dello stato dell’interfaccia utente in savedInstanceState.
// Questo pacchetto verrà passato a onCreate se il processo è
/ / ucciso e riavviato.
Stato di salvataggio.putBoolean (“StringKeyForBoolean”, false);
savedInstanceState.putDouble (“StringKeyForDouble”, 3.4);
savedInstanceState.putInt (“StringKeyForInteger”, 5);
savedInstanceState.putString (“StringKey”, “Folio3 / blog”);
/ / ecc.
}
Il Bundle è essenzialmente un modo per memorizzare una mappa NVP (“Coppia nome-valore”) e verrà passato in onRestoreInstanceState() dove si estrarranno i valori come questo:
Questo metodo viene chiamato dopo onStart().
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState (savedInstanceState);
// Ripristina lo stato dell’interfaccia utente utilizzando savedInstanceState.
Var1 = Stato di salvataggio.getBoolean (“StringKeyForBoolean”, false);
Var2 = savedInstanceState.getDouble (“StringKeyForDouble”);
Var3 = savedInstanceState.getInt (“StringKeyForInteger”);
Var4 = savedInstanceState.getString (“StringKey”);
}
In questo modo è possibile salvare tutti gli stati e altre variabili di dati che potrebbero essere persi durante la rotazione dello schermo o quando l’attività corrente passa in secondo piano. Salvare e ripristinare gli stati dell’interfaccia utente è una buona pratica nello sviluppo di app Android.
Nota: Quando un’attività viene creata per la prima volta non ci saranno dati nel pacchetto Salva stato istanza.
Dai un’occhiata a questa guida se hai intenzione di lanciare un’app.