Junior — Middle
Jak odbywa się przechowywanie danych w ViewModel w aplikacjach Android?
sobes.tech AI
Odpowiedź od AI
W Androidzie ViewModel przechowuje dane, które muszą przetrwać zmiany konfiguracji (np. obrót ekranu). W tym celu ViewModel przechowuje stan w swoich polach, a podczas ponownego tworzenia Activity lub Fragment dane pozostają dostępne.
Jeśli trzeba zapisać dane w przypadku pełnego zniszczenia aplikacji, używa się SavedStateHandle — specjalnego obiektu umożliwiającego zapisywanie i przywracanie stanu.
Przykład użycia ViewModel z SavedStateHandle:
class MyViewModel(private val state: SavedStateHandle) : ViewModel() {
var userName: String?
get() = state["userName"]
set(value) {
state["userName"] = value
}
}
W ten sposób dane wewnątrz ViewModel są przechowywane w pamięci, a w razie potrzeby — w SavedStateHandle do przywracania po zniszczeniu procesu.