salvarea și restaurarea unei stări UI de activitate este o parte importantă a experienței utilizatorului. În astfel de cazuri, clientul se așteaptă ca starea UI să continue ca înainte, cu toate acestea, cadrul demolează acțiunea și orice stare prezentă în ea. Este posibil să fi văzut în timpul testării că rotația ecranului resetează toate informațiile colectate de la client. Același lucru este cazul atunci când un utilizator apasă butonul înapoi din greșeală. Rotația ecranului este una dintre numeroasele modificări ale ciclului de viață din Android care pot distruge și reseta activitatea și pot duce la pierderea tuturor informațiilor. Cu siguranță nu este o experiență extraordinară a utilizatorului!
în scopul de a salva și de a restabili starea UI, am suprascrie două metode cele mai comune în acest scop:
onSaveInstanceState():
pentru a salva sates de UI, am suprascrie onSaveInstanceState(Bundle savedInstanceState) și salvați toate datele de UI în savedInstanceState Bundle.
această metodă este apelată înainte de onStop() în versiunile mai vechi de Android (până la android 8.0) și poate fi apelată după onStop() pentru versiunile mai noi.
@Override
public void onSaveInstanceState(pachet savedInstanceState) {
super.onSaveInstanceState (savedInstanceState);
// Salvați modificările de stare UI la savedInstanceState.
// acest pachet va fi trecut la onCreate dacă procesul este
/ / ucis și repornit.
savedInstanceState.putBoolean („StringKeyForBoolean”, fals);
savedInstanceState.putDouble („StringKeyForDouble”, 3.4);
savedInstanceState.putInt („StringKeyForInteger”, 5);
savedInstanceState.putString („StringKey”,”Folio3/blog”);
// etc.
}
pachetul este în esență o modalitate de a stoca o hartă NVP („pereche nume-valoare”) și va fi transmisă în onRestoreInstanceState () unde veți extrage apoi valorile astfel:
această metodă se numește după onStart().
@Override
public void onRestoreInstanceState(pachet savedInstanceState) {
super.onSaveInstanceState (savedInstanceState);
// restaurați starea UI folosind savedInstanceState.
Var1 = savedInstanceState.getBoolean („StringKeyForBoolean”, fals);
Var2 = savedInstanceState.getDouble („StringKeyForDouble”);
Var3 = savedInstanceState.getInt („StringKeyForInteger”);
Var4 = savedInstanceState.getString („StringKey”);
}
folosind acest mod puteți salva toate stările și alte variabile de date care ar putea fi pierdute la rotirea ecranului sau când activitatea curentă intră în fundal. Salvarea și restaurarea stărilor UI este o bună practică în dezvoltarea aplicațiilor android.
notă: Când o activitate este creată pentru prima dată, nu vor exista date în pachetul de stare a instanței de salvare.
consultați acest ghid dacă intenționați să lansați o aplicație.