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:
-
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.
-
ViewModel — komponenta iz arhitektonskih komponenti Androida, koja čuva podatke pri promeni konfiguracije i ne se kreira ponovo zajedno sa Activity.
-
Č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.