Mi configuración (subconjunto relevante):
Estoy tratando de mantener el estado de la interfaz de usuario mejorando las capacidades de mi modelo de vista vinculado a la ViewModel para aprovechar el estado guardado del modelo de vista del ciclo de vida. Básicamente se ve así:
class MySavedStateViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() { init { viewModelScope.launch { // Logic to load data from savedStateHandle } } fun saveData() { // Logic to save data to savedStateHandle } } Creo el ViewModel dentro de un componible, que se ve así:
val mySavedStateViewModel: MySavedStateViewModel by activityBoundViewModel( factoryProducer = { MySavedStateViewModelFactory(context as ComponentActivity) } )MySavedStateViewModelFactory se ve así:
class MySavedStateViewModelFactory( savedStateRegistryOwner: SavedStateRegistryOwner, bundle: Bundle? = null ) : MySavedStateViewModelFactory(savedStateRegistryOwner, bundle) { @Suppress("UNCHECKED_CAST") override fun <T : ViewModel> create(key: String, modelClass: Class<T>, handle: SavedStateHandle): T { val viewModel = MySavedStateViewModel(savedStateHandle = handle) return viewModel as T } }Parece que SavedStateHandle se actualiza correctamente cuando uso la aplicación, pero cuando la elimino y la vuelvo a iniciar, los datos se pierden.
¿Qué necesito cambiar para que la persistencia funcione?
Relacionado pero una publicación anterior: SavedState ViewModel usando SavedStateViewModelFactory