Já jdu přes to codelab: https://developer.android.com/codelabs/android-lifecycles#6 To vysvětluje, jak používat SavedStateHandle v ViewModel přežít proces smrti. Konstruktor ViewModel je jako pod:
private SavedStateHandle mState;
public SavedStateViewModel(SavedStateHandle savedStateHandle) {
mState = savedStateHandle;
}
A viewmodel je inicializován v Činnosti takto:
mSavedStateViewModel = new ViewModelProvider(this).get(SavedStateViewModel.class);
Když je ViewModel je konstruktor jmenuje? A jak vypadá Viewmodel získat savedStateHandle
parametr ViewModel?
Edit:
Našel jsem odpověď na svou otázku prostřednictvím tohoto blogpost: https://www.rockandnull.com/viewmodel-savedstate/
To říká, že pokudSavedStateHandle
je to jediný parametr, v našem viewmodel je konstruktor by viewModels
delegát nabízí k viewmodel automaticky.
Nicméně, Pokud máme kombinaci vlastní parametry, které je poskytována dependency injection framework(Rukojeť) e.g: úložiště, pár jiných runtime argumenty e.g: vybrané kategorie ID a SavedStateHandle, aby nám pomohli přežít proces smrti v viewmodel je konstruktor - Jak můžeme poskytnout všechny tyto parametry do továrny?
Prosím post malý příklad pro mé chápání