Idem cez tento codelab: https://developer.android.com/codelabs/android-lifecycles#6 To vysvetľuje, ako používať SavedStateHandle v ViewModel prežiť proces smrti. Konštruktér ViewModel ako je to uvedené nižšie:
private SavedStateHandle mState;
public SavedStateViewModel(SavedStateHandle savedStateHandle) {
mState = savedStateHandle;
}
A viewmodel je inicializovaný v Činnosti a dopĺňa takto:
mSavedStateViewModel = new ViewModelProvider(this).get(SavedStateViewModel.class);
Keď je ViewModel je konštruktor volá? A ako sa Viewmodel získať savedStateHandle
parameter ViewModel?
Úprava:
Našiel som odpovede na moje otázky cez tento blogpost: https://www.rockandnull.com/viewmodel-savedstate/
To hovorí, že akSavedStateHandle
je jediný parameter, v našom viewmodel je constructor na by viewModels
delegát ponúka na viewmodel automaticky.
Avšak, Ak máme zmes vlastné parametre, ktoré poskytol dependency injection rámec(Rukoväť) e.g: úloţiska, pár ďalších runtime argumenty e.g: vybrané kategórie ID a SavedStateHandle, aby nám pomohli prežiť proces smrti v viewmodel je constructor - Ako môžeme poskytnúť všetky tieto parametre do továrne?
Prosím, po malý príklad pre moje pochopenie