ukládání a obnovení stavu uživatelského rozhraní je důležitou součástí uživatelské zkušenosti. V takových případech klient očekává, že stav UI bude pokračovat jako dříve, rámec však demoluje akci a jakýkoli stav, který je v ní přítomen. Možná jste během testování viděli, že rotace obrazovky resetuje všechny informace shromážděné od klienta. Totéž platí, když uživatel omylem stiskne tlačítko zpět. Rotace obrazovky je jednou z mnoha změn životního cyklu v Androidu, které mohou zničit a resetovat aktivitu a způsobit ztrátu všech informací. Rozhodně to není mimořádný uživatelský zážitek!
Za účelem Uložení a Obnovení ROZHRANÍ stavu, jsem přepsat dvě nejčastější metody pro tento účel:
onSaveInstanceState():
Ve snaze ušetřit státy UI, jsem přepsat onSaveInstanceState(Bundle savedInstanceState) a uložit všechna data z uživatelského ROZHRANÍ v Bundle savedInstanceState.
Tato metoda je volána před onStop() ve starších verzích pro Android (do android 8.0) a může být volána po onStop() pro novější verze.
@Override
public void onSaveInstanceState (Bundle savedInstanceState) {
super.onsaveinstancestate (savedInstanceState);
// Uložit změny stavu UI do savedInstanceState.
/ / tento balíček bude předán onCreate, pokud je proces
// zabit a restartován.
savedInstanceState.putBoolean („StringKeyForBoolean“, false);
savedInstanceState.putDouble („StringKeyForDouble“, 3.4);
savedInstanceState.putInt („StringKeyForInteger“, 5);
savedInstanceState.putString („StringKey“,“Folio3/blog“);
// atd.
}
Svazek je v podstatě způsob uložení NVP („Name-Value Pair“) mapě, a to bude mít přešel do onRestoreInstanceState (), kde by pak extrahovat hodnoty, jako je tento:
Tato metoda je volána po onStart().
@Override
public void onRestoreInstanceState (Bundle savedInstanceState) {
super.onsaveinstancestate (savedInstanceState);
// obnovit stav uživatelského rozhraní pomocí savedInstanceState.
Var1 = savedInstanceState.getBoolean („StringKeyForBoolean“, false);
Var2 = savedInstanceState.getDouble („StringKeyForDouble“);
Var3 = savedInstanceState.getInt („StringKeyForInteger“);
Var4 = savedInstanceState.getString(„StringKey“);
}
Pomocí této způsob, jak si můžete uložit všechny státy a další data proměnné, které by mohly být ztraceny na otáčení obrazovky, nebo při aktuální aktivitě jde do pozadí. Ukládání a obnovení stavů uživatelského rozhraní je dobrou praxí při vývoji aplikací pro android.
Poznámka: Když je aktivita vytvořena poprvé, nebudou v balíčku stavu uložení instance Žádná data.
podívejte se na tuto příručku, pokud plánujete spustit aplikaci.