Sobes.tech
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.