Junior — Middle
Hogyan biztosított az adatok megőrzése az okostelefonos alkalmazásokban a képernyőorientáció megváltoztatásakor?
sobes.tech MI
Válasz az MI-től
Amikor az Androidon a képernyőorientációt megváltoztatják, az Activity újra létrejön, ami a jelenlegi állapot elvesztéséhez vezet. Az adatok mentéséhez a következő módszereket használják:
- onSaveInstanceState(Bundle outState) — módszer, amellyel a szükséges adatokat egy Bundle objektumba menthetjük az Activity megsemmisítése előtt.
- onRestoreInstanceState(Bundle savedInstanceState) vagy az adatok lekérése a savedInstanceState-ből az onCreate-ben az állapot helyreállításához.
- Az Android architekturális komponenseiből származó ViewModel használata, amely megőrzi az adatokat az Activity újra létrehozásakor.
- Az adatok mentése Persistent Storage-ba (pl. SharedPreferences vagy adatbázis) hosszú távú tárolás céljából.
Példa az állapot mentésére a számláló esetében:
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")
}
}