Junior — Middle
Kaip užtikrinamas duomenų išsaugojimas keičiant ekrano orientaciją mobiliuosiuose taikymuose?
sobes.tech AI
Atsakymas iš AI
Kai keičiasi ekrano orientacija Android, Activity yra iš naujo sukuriama, kas sukelia esamo būsenos praradimą. Duomenų išsaugojimui naudojami šie metodai:
- onSaveInstanceState(Bundle outState) — metodas, kuriame galima išsaugoti reikalingus duomenis į Bundle objektą prieš sunaikinant Activity.
- onRestoreInstanceState(Bundle savedInstanceState) arba duomenų gavimas iš savedInstanceState onCreate, kad būtų galima atkurti būseną.
- Naudojant ViewModel iš Android architektūrinių komponentų, kuris išlaiko duomenis aktyvumo iš naujo sukūrimo metu.
- Duomenų išsaugojimas Persistent Storage (pvz., SharedPreferences ar duomenų bazėje) ilgalaikiam saugojimui.
Pavyzdys, kaip išsaugoti skaitiklio būseną:
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("counter", currentCounter)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (savedInstanceState != null) {
currentCounter = savedInstanceState.getInt("counter")
}
}