Sobes.tech
Junior — Middle

Ako zabezpečiť zachovanie aktuálneho stavu systému pri zmene konfigurácie?

sobes.tech AI

Odpoveď od AI

V Androidu sa pri zmene konfigurácie (napríklad otočenie obrazovky) sa používa mechanizmus uloženia aktuálneho stavu systému prostredníctvom uloženia stavu Activity alebo Fragment.

Hlavné spôsoby:

  1. onSaveInstanceState(Bundle outState) — metóda, do ktorej môžete uložiť potrebné údaje do objektu Bundle. Tieto údaje budú dostupné pri opätovnom vytvorení Activity v metódach onCreate alebo onRestoreInstanceState.

  2. ViewModel — komponent z architektonických komponentov Androidu, ktorý uchováva údaje pri zmene konfigurácie a nie je znovu vytvorený spolu s Activity.

  3. Uloženie stavu UI komponentov — mnoho štandardných widgetov automaticky uloží svoj stav, ak majú jedinečný identifikátor.

Príklad uloženia stavu počítadla:

class MainActivity : AppCompatActivity() {
    private var counter = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        counter = savedInstanceState?.getInt("counter_key") ?: 0
        // aktualizovať UI s aktuálnou hodnotou counter
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putInt("counter_key", counter)
    }
}

Takto, pri zmene konfigurácie, údaje nebudú stratené a používateľ uvidí rovnaké rozhranie a stav.