Sobes.tech
Junior — Middle

Cum se asigură păstrarea stării actuale a sistemului la schimbarea configurației?

sobes.tech AI

Răspuns de la AI

În Android, pentru a salva starea curentă a sistemului la schimbarea configurației (de exemplu, rotirea ecranului), se utilizează mecanismul de salvare a stării Activity sau Fragment.

Metodele principale:

  1. onSaveInstanceState(Bundle outState) — metodă în care se pot salva datele necesare într-un obiect Bundle. Aceste date vor fi disponibile la recrearea Activity în metodele onCreate sau onRestoreInstanceState.

  2. ViewModel — componentă din componentele arhitecturale Android, care păstrează datele la schimbarea configurației și nu se recreează împreună cu Activity.

  3. Salvarea stării componentelor UI — multe widget-uri standard își salvează automat starea dacă au un identificator unic.

Exemplu de salvare a stării unui contor:

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
        // actualizează UI-ul cu valoarea curentă a counter
    }

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

Astfel, la schimbarea configurației, datele nu se vor pierde, iar utilizatorul va vedea aceeași interfață și stare.