Jak zapewnić zachowanie aktualnego stanu systemu podczas zmiany konfiguracji?
sobes.tech AI
Odpowiedź od AI
W Androidzie, aby zapisać aktualny stan systemu podczas zmiany konfiguracji (np. obrót ekranu), używa się mechanizmu zapisywania stanu Activity lub Fragment.
Główne metody:
-
onSaveInstanceState(Bundle outState) — metoda, w której można zapisać niezbędne dane w obiekcie Bundle. Te dane będą dostępne podczas ponownego tworzenia Activity w metodzie onCreate lub onRestoreInstanceState.
-
ViewModel — komponent z architektonicznych komponentów Androida, który przechowuje dane podczas zmiany konfiguracji i nie jest ponownie tworzony razem z Activity.
-
Zapisywanie stanu komponentów UI — wiele standardowych widżetów automatycznie zapisuje swój stan, jeśli mają unikalny identyfikator.
Przykład zapisywania stanu licznika:
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
// aktualizacja UI z bieżącą wartością counter
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("counter_key", counter)
}
}
W ten sposób, podczas zmiany konfiguracji, dane nie zostaną utracone, a użytkownik zobaczy ten sam interfejs i stan.