Junior — Middle
Wie erfolgt die Speicherung von Daten innerhalb des ViewModel in Android-Anwendungen?
sobes.tech KI
Antwort von AI
In Android speichert ViewModel Daten, die Konfigurationsänderungen überleben sollen (z.B. Bildschirmrotation). Dafür hält ViewModel den Zustand in seinen Feldern, und bei der Neuerstellung von Activity oder Fragment bleiben die Daten zugänglich.
Wenn Daten bei vollständiger Zerstörung der Anwendung gespeichert werden sollen, verwendet man SavedStateHandle, ein spezielles Objekt, das das Speichern und Wiederherstellen des Zustands ermöglicht.
Beispiel für die Verwendung von ViewModel mit SavedStateHandle:
class MyViewModel(private val state: SavedStateHandle) : ViewModel() {
var userName: String?
get() = state["userName"]
set(value) {
state["userName"] = value
}
}
Auf diese Weise werden die Daten im ViewModel im Speicher gespeichert, und bei Bedarf im SavedStateHandle zur Wiederherstellung nach der Zerstörung des Prozesses.