
ViewModel SavedStateHandle Guide — Surviving Process Death in Android
What You'll Learn How to use SavedStateHandle to preserve ViewModel state across process death. Why SavedStateHandle? Regular ViewModel variables live in memory only — they're lost on process death. SavedStateHandle saves state via Bundle, surviving process death and restoration. Basic Usage class SearchViewModel ( private val savedStateHandle : SavedStateHandle ) : ViewModel () { val query : StateFlow < String > = savedStateHandle . getStateFlow ( "query" , "" ) val selectedTab : StateFlow < Int > = savedStateHandle . getStateFlow ( "selectedTab" , 0 ) fun updateQuery ( newQuery : String ) { savedStateHandle [ "query" ] = newQuery } fun selectTab ( index : Int ) { savedStateHandle [ "selectedTab" ] = index } } Navigation Arguments class UserDetailViewModel ( savedStateHandle : SavedStateHandle ) : ViewModel () { private val userId : String = checkNotNull ( savedStateHandle [ "userId" ]) init { loadUser ( userId ) } } With Hilt @HiltViewModel class TodoViewModel @Inject constructor ( p
Continue reading on Dev.to
Opens in a new tab




