Voy a través de este codelab: https://developer.android.com/codelabs/android-lifecycles#6 Se explica cómo utilizar SavedStateHandle en un ViewModel para sobrevivir proceso de la muerte. El constructor de la ViewModel es la siguiente:
private SavedStateHandle mState;
public SavedStateViewModel(SavedStateHandle savedStateHandle) {
mState = savedStateHandle;
}
Y el viewmodel se inicializa en la Actividad de la siguiente manera:
mSavedStateViewModel = new ViewModelProvider(this).get(SavedStateViewModel.class);
Cuando es el ViewModel constructor de la llamada? Y ¿cómo funciona el Viewmodel obtener la savedStateHandle
parámetro de la Perspective?
Editar:
He encontrado la respuesta a mi pregunta a través de este blogpost: https://www.rockandnull.com/viewmodel-savedstate/
Se dice que si elSavedStateHandle
es el único parámetro en nuestra viewmodel del constructor de la by viewModels
delegado proporciona a la perspective de forma automática.
Sin embargo, Si tenemos una combinación de parámetros personalizados de la proporcionada por el marco de inserción de dependencia(Empuñadura). e.g: el repositorio, un par de tiempo de ejecución de argumentos e.g: categoría seleccionada y el ID de la SavedStateHandle para ayudarnos a sobrevivir el proceso de la muerte en la perspective del constructor - ¿Cómo podemos proporcionar todos los parámetros de fábrica?
Favor de poner un pequeño ejemplo de mi entendimiento