Wie kann der aktuelle Zustand des Systems bei Änderungen an der Konfiguration erhalten bleiben?
sobes.tech KI
Antwort von AI
In Android wird der aktuelle Systemzustand beim Ändern der Konfiguration (z.B. Bildschirmdrehung) durch den Mechanismus zum Speichern des Zustands von Activity oder Fragment gespeichert.
Hauptmethoden:
-
onSaveInstanceState(Bundle outState) — Methode, in der notwendige Daten in ein Bundle-Objekt gespeichert werden können. Diese Daten sind beim Neuerstellen der Activity in onCreate oder onRestoreInstanceState verfügbar.
-
ViewModel — Komponente aus den Architekturkomponenten von Android, die Daten beim Ändern der Konfiguration speichert und nicht zusammen mit der Activity neu erstellt wird.
-
Speichern des Zustands von UI-Komponenten — Viele Standard-Widgets speichern ihren Zustand automatisch, wenn sie eine eindeutige Kennung haben.
Beispiel zum Speichern des Zählerzustands:
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
// UI mit aktuellem counter-Wert aktualisieren
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("counter_key", counter)
}
}
Auf diese Weise gehen bei einer Konfigurationsänderung die Daten nicht verloren, und der Benutzer sieht die gleiche Oberfläche und den gleichen Zustand.