Sobes.tech
Junior — Middle

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:

  1. 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.

  2. ViewModel — komponent z architektonicznych komponentów Androida, który przechowuje dane podczas zmiany konfiguracji i nie jest ponownie tworzony razem z Activity.

  3. 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.