Veiklos būklės išsaugojimo supratimas
Veiklos būsenos išsaugojimas sistemoje „Android“ gali būti šiek tiek gluminantis, ypač kūrėjams, kurie pradeda naudoti Android SDK platformą. Čia pateiktame pavyzdyje parodyta paprasta programa, kuri vartotojus pasitinka skirtingai, atsižvelgiant į tai, ar jie pirmą kartą atidaro programą, ar grįžta.
Tačiau dabartinis diegimas visada rodo pradinį sveikinimą, nepaisant naršymo toli nuo programos. Šis straipsnis padės atlikti būtinus veiksmus, kad tinkamai išsaugotumėte ir atkurtumėte veiklos būseną naudojant „onSaveInstanceState“ metodą.
komandą | apibūdinimas |
---|---|
onSaveInstanceState(Bundle outState) | Šis metodas iškviečiamas prieš sunaikinant veiklą, kad būtų išsaugota vartotojo sąsajos komponentų būsena. |
putString(String key, String value) | Išsaugo eilutės reikšmę rinkinyje su nurodytu raktu, kad vėliau būtų galima gauti. |
getString(String key) | Nuskaito eilutės reikšmę iš paketo, naudodamas nurodytą raktą. |
onRestoreInstanceState(Bundle savedInstanceState) | Šis metodas iškviečiamas po onStart(), kad būtų atkurta vartotojo sąsajos būsena iš anksčiau išsaugoto paketo. |
setContentView(View view) | Nustato veiklos turinį į aiškų rodinį, todėl jis yra išdėstymo šaknis. |
TextView.setText(String text) | Nustato tekstą, kuris bus rodomas TextView. |
super.onCreate(Bundle savedInstanceState) | Iškviečia superklasės metodą onCreate(), inicijuodamas veiklą. |
Kaip išsaugoti veiklos būseną „Android“.
Pateiktuose scenarijuose tiriame, kaip išsaugoti veiklos būseną naudojant „Android“ kūrimo metodas. Pirmasis scenarijus parodo, kaip sukurti veiklą, kurioje rodomas pasisveikinimo pranešimas, kuris keičiasi priklausomai nuo to, ar vartotojas pirmą kartą atidaro programą, ar nuėjo ir grįžo. Kritinė scenarijaus dalis apima būsenos išsaugojimą naudojant metodas. Kai veikla netrukus bus sunaikinta, šis metodas iškviečiamas UI komponentų būsenai išsaugoti. Saugome rodomą tekstą TextView naudojant metodas, susiejantis eilutės reikšmę su nurodytu raktu .
Atkūrus veiklą, metodas patikrina, ar yra išsaugoto egzemplioriaus būsena. Jei yra, jis nuskaito anksčiau išsaugotą tekstą naudodamas metodą ir grąžina jį į . Taip užtikrinama, kad vartotojas pamatytų tą patį pranešimą, kurį matė prieš išvykdamas. Antrajame scenarijuje mes toliau patobuliname šį metodą, pridėdami onRestoreInstanceState(Bundle savedInstanceState) metodas, kuris vadinamas po Norėdami atkurti vartotojo sąsajos būseną iš anksčiau išsaugotos . Šis metodas tiesiogiai nustato išsaugotą tekstą į , užtikrinant, kad vartotojo sąsajos būsena būtų nuosekli ir sklandžiai išsaugoma paleidus veiklą iš naujo.
Būsenos išsaugojimo diegimas „Android“ veikloje
Java Android kūrimas
package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
private TextView mTextView = null;
private static final String TEXT_VIEW_KEY = "textViewKey";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mTextView = new TextView(this);
if (savedInstanceState == null) {
mTextView.setText("Welcome to HelloAndroid!");
} else {
mTextView.setText(savedInstanceState.getString(TEXT_VIEW_KEY));
}
setContentView(mTextView);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(TEXT_VIEW_KEY, mTextView.getText().toString());
}
}
Duomenų patvarumo užtikrinimas „Android“ programose
Java Android kūrimas
package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
private TextView mTextView = null;
private static final String TEXT_VIEW_STATE = "textViewState";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mTextView = new TextView(this);
if (savedInstanceState != null) {
mTextView.setText(savedInstanceState.getString(TEXT_VIEW_STATE));
} else {
mTextView.setText("Welcome to HelloAndroid!");
}
setContentView(mTextView);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(TEXT_VIEW_STATE, mTextView.getText().toString());
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mTextView.setText(savedInstanceState.getString(TEXT_VIEW_STATE));
}
}
Būsenos išlikimo užtikrinimas keičiant konfigūraciją
Kuriant Android programas labai svarbu valdyti veiklos būseną, kai keičiama konfigūracija, pvz., ekrano pasukimas. Dėl konfigūracijos pakeitimų veikla sunaikinama ir sukuriama iš naujo, todėl netinkamai tvarkomos laikinosios vartotojo sąsajos būsenos. Naudojant metodą, kūrėjai gali išsaugoti reikiamą vartotojo sąsajos būsenos informaciją. Šis metodas iškviečiamas prieš sunaikinant veiklą, todėl kūrėjai gali saugoti raktų ir reikšmių poras a , išsaugant būseną vėlesniam atkūrimui.
Be to, labai svarbu suprasti vaidmenį klasė iš Android's Architecture Components. sukurtas su vartotojo sąsaja susijusiems duomenims saugoti ir tvarkyti atsižvelgiant į gyvavimo ciklą, leidžiant duomenims išlaikyti konfigūracijos pakeitimus. Naudojant , kūrėjai gali atsieti vartotojo sąsajos valdiklius nuo tvarkomų duomenų, todėl programa tampa patikimesnė ir lengviau prižiūrima. Sujungimas ViewModel su suteikia išsamų sprendimą efektyviai valdyti veiklos būseną.
- Koks tikslas ?
- The metodas naudojamas norint išsaugoti esamą veiklos vartotojo sąsajos būseną prieš ją sunaikinant.
- Kaip atkurti aktyvumo būseną?
- Galite atkurti veiklos būseną metodą, patikrindami išsaugotą instancijos būseną ir atkurti išsaugotas reikšmes.
- Kas yra a ?
- A yra raktų ir reikšmių porų žemėlapis, naudojamas duomenims perduoti tarp veiklų ir išsaugoti vartotojo sąsajos būseną.
- Koks yra vaidmuo valstybės valdyme?
- su vartotojo sąsaja susijusius duomenis saugo visą gyvavimo ciklą, išgyvena konfigūracijos pakeitimus.
- Kada paskambino?
- vadinamas paskui kai veikla iš naujo inicijuojama iš anksčiau išsaugotos būsenos.
- Ar galiu naudoti abu ir kartu?
- Taip, derinant su yra patikimas sprendimas NS būsenai valdyti atliekant konfigūracijos pakeitimus.
- Kokie yra „Android“ konfigūracijos pakeitimai?
- Konfigūracijos pakeitimai apima ekrano pasukimą, klaviatūros pasiekiamumą ir kalbos pakeitimus, dėl kurių veikla atkuriama.
- Kaip dirbti a ?
- išsaugo eilutės reikšmę a su susijusiu raktu vėlesniam atkūrimui.
Norint užtikrinti sklandžią naudotojo patirtį, ypač keičiant konfigūraciją, būtina efektyviai valdyti „Android“ veiklos būseną. Naudojant svertą ir metodus, kūrėjai gali užtikrinti, kad vartotojo duomenys ir vartotojo sąsajos būsenos būtų išsaugomos ir atkurtos sklandžiai. Šis metodas ne tik padidina programos stabilumą, bet ir pagerina vartotojų pasitenkinimą, nes suteikia nuoseklią ir patikimą sąsają.