Je vais à travers ce codelab: https://developer.android.com/codelabs/android-lifecycles#6 Il explique comment utiliser SavedStateHandle dans un ViewModel pour survivre processus de la mort. Le constructeur du ViewModel est comme ci-dessous:
private SavedStateHandle mState;
public SavedStateViewModel(SavedStateHandle savedStateHandle) {
mState = savedStateHandle;
}
Et le viewmodel est initialisée dans l'Activité comme suit:
mSavedStateViewModel = new ViewModelProvider(this).get(SavedStateViewModel.class);
Quel est le constructeur du ViewModel appelé? Et comment le Viewmodel obtenir le savedStateHandle
paramètre de la ViewModel?
Edit:
J'ai trouvé la réponse à ma question par le biais de ce blog: https://www.rockandnull.com/viewmodel-savedstate/
Il est dit que si l'SavedStateHandle
est le seul paramètre dans notre viewmodel le constructeur de la by viewModels
délégué à la viewmodel automatiquement.
Cependant, Si nous avons une combinaison de paramètres personnalisés fournis par le framework injection de dépendance(Poignée) e.g: le référentiel, un couple de d'autres d'exécution des arguments e.g: sélectionné ID de la catégorie et de la SavedStateHandle pour nous aider à survivre le processus de la mort dans le constructeur du viewmodel - Comment pouvons-nous fournir tous les paramètres d'usine?
Merci de poster un petit exemple pour ma compréhension