Junior — Middle
What methods can you use to implement saving the state of a ViewModel in an application?
sobes.tech AI
Answer from AI
To preserve the state of a ViewModel in an Android application, several approaches can be used:
- SavedStateHandle — an built-in mechanism that allows saving and restoring the ViewModel state during recreation (e.g., during screen rotation). It works as a key-value store and integrates with the lifecycle.
class MyViewModel(savedStateHandle: SavedStateHandle) : ViewModel() {
var count: Int
get() = savedStateHandle.get<Int>("count") ?: 0
set(value) = savedStateHandle.set("count", value)
}
-
onSaveInstanceState() and Bundle — you can save the state in a Bundle in an Activity or Fragment, and then pass the data to the ViewModel.
-
Using local storage (SharedPreferences, database) — for more long-term state preservation.
-
Serializing the state to a file or database — if the state is complex and needs to be saved between sessions.
Most often, SavedStateHandle is used for temporary preservation of ViewModel state during configuration changes.