Sobes.tech
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")
    }
}