Lagre Og gjenopprette en AKTIVITET UI tilstand er en viktig del av brukeropplevelsen. I slike tilfeller forventer klienten AT UI-tilstanden skal fortsette som før, men rammeverket ødelegger handlingen og enhver tilstand som er tilstede i den. Du har kanskje sett under testing at skjermrotasjon tilbakestiller all informasjon samlet fra klienten. Samme er tilfelle når en bruker trykker på tilbake-knappen ved en feil. Skjermrotasjon er En av De mange livssyklusendringene I Android som kan ødelegge Og tilbakestille Aktiviteten og føre til at all informasjon går tapt. Definitivt ikke en ekstraordinær brukeropplevelse!
For Å Lagre OG Gjenopprette UI-tilstand overstyrer jeg to vanligste metoder for dette formålet:
onSaveInstanceState ():
for å lagre sates AV UI, overstyrer jeg onSaveInstanceState(Bundle savedInstanceState) og lagrer alle dataene i BRUKERGRENSESNITTET i savedInstanceState Bundle.
Denne metoden kalles før onStop() i eldre versjoner Av Android (til android 8.0) og kan kalles etter onStop() for nyere versjoner.
@Override
offentlig ugyldig onSaveInstanceState (Bunt savedInstanceState) {
super.onSaveInstanceState (savedInstanceState);
/ / Lagre UI-tilstandsendringer i savedInstanceState.
/ / denne pakken vil bli sendt til onCreate hvis prosessen er
// drept og startet på nytt.
savedInstanceState.putBoolean («StringKeyForBoolean», false);
savedInstanceState.putDouble («StringKeyForDouble», 3.4);
savedInstanceState.putInt («StringKeyForInteger», 5);
lagret instancestate.putString («StringKey»,»Folio3/blogg»);
// etc.
}
Bunten er i hovedsak en måte å lagre ET nvp-kart («Name-Value Pair»), og det vil bli sendt inn i onRestoreInstanceState () hvor du da vil trekke ut verdiene som dette:
denne metoden kalles etter onStart ().
@Override
offentlig ugyldig onRestoreInstanceState (Bunt savedInstanceState) {
super.onSaveInstanceState (savedInstanceState);
/ / Gjenopprett UI-tilstand ved hjelp av savedInstanceState.
Var1 = savedInstanceState.getBoolean («StringKeyForBoolean», false);
Var2 = savedInstanceState.getDouble («StringKeyForDouble»);
Var3 = savedInstanceState.getInt («StringKeyForInteger»);
Var4 = savedInstanceState.getString («StringKey»);
}
Ved hjelp av denne måten kan du lagre alle statene og andre data variabler som kan gå tapt på skjermrotasjon eller når gjeldende aktivitet går inn i bakgrunnen. Lagre og gjenopprette tilstander AV UI er en god praksis i android app utvikling.
Merk: Når en aktivitet opprettes for første gang, blir det ingen data i pakken lagre forekomst.
Sjekk ut denne veiledningen hvis du planlegger å starte en app.