Am de gând prin acest codelab: https://developer.android.com/codelabs/android-lifecycles#6 Acesta explică cum să utilizați SavedStateHandle într-un ViewModel pentru a supraviețui procesului de moarte. Constructorul de ViewModel este ca mai jos:
private SavedStateHandle mState;
public SavedStateViewModel(SavedStateHandle savedStateHandle) {
mState = savedStateHandle;
}
Și viewmodel este inițializat în Activitate, după cum urmează:
mSavedStateViewModel = new ViewModelProvider(this).get(SavedStateViewModel.class);
Atunci când este ViewModel constructorul numit? Și cum nu Viewmodel obține savedStateHandle
parametru de ViewModel?
Edit:
Am găsit răspunsul la întrebarea mea prin acest blogpost: https://www.rockandnull.com/viewmodel-savedstate/
Se spune că, dacăSavedStateHandle
este singurul parametru în nostru viewmodel este constructorul by viewModels
delega oferă să viewmodel automat.
Cu toate acestea, Dacă avem o combinație de parametri personalizate furnizate de injectare dependență cadru(Mâner) e.g: magazia, o serie de alte argumente de rulare e.g: categoria selectată ID-ul și SavedStateHandle pentru a ne ajuta să supraviețuiască procesului de moarte în viewmodel constructor - Cum putem oferi toate aceste parametri de fabrica?
Vă rugăm să posta un mic exemplu pentru înțelegerea mea