Sobes.tech
Junior — Middle

Kako osigurati očuvanje trenutnog stanja sistema prilikom promene konfiguracije?

sobes.tech АИ

Одговор од АИ

U Androidu, za čuvanje trenutnog stanja sistema pri promeni konfiguracije (na primer, rotacija ekrana), koristi se mehanizam čuvanja stanja Activity ili Fragment.

Glavni načini:

  1. onSaveInstanceState(Bundle outState) — metoda u kojoj možete sačuvati potrebne podatke u objekat Bundle. Ovi podaci će biti dostupni pri ponovnom kreiranju Activity u metodama onCreate ili onRestoreInstanceState.

  2. ViewModel — komponenta iz arhitektonskih komponenti Androida, koja čuva podatke pri promeni konfiguracije i ne se kreira ponovo zajedno sa Activity.

  3. Čuvanje stanja UI komponenti — mnogi standardni widget-i automatski čuvaju svoje stanje ako imaju jedinstveni identifikator.

Primer čuvanja stanja brojača:

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
        // ažurirati UI sa trenutnom vrednošću counter
    }

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

Na ovaj način, pri promeni konfiguracije, podaci neće biti izgubljeni, i korisnik će videti isti interfejs i stanje.