Przeglądam tę tabelę kodową: https://developer.android.com/codelabs/android-lifecycles#6 W nim wyjaśniono, jak korzystać z SavedStateHandle w modelu widoku, aby przeżyć śmierć procesu. Konstruktor modelu prezentacji w następujący sposób:
private SavedStateHandle mState;
public SavedStateViewModel(SavedStateHandle savedStateHandle) {
mState = savedStateHandle;
}
I model prezentacji zainicjowany w akcji w następujący sposób:
mSavedStateViewModel = new ViewModelProvider(this).get(SavedStateViewModel.class);
Gdy wywoływany jest konstruktor ViewModel? I jak model prezentacji dostaje savedStateHandle
parametr modelu widoku?
Zmiany:
Znalazłem odpowiedź na swoje pytanie w tym blogu: https://www.rockandnull.com/viewmodel-savedstate/
Stwierdzono w nim, że jeśliSavedStateHandle
czy jest to jedyny parametr w konstruktorze naszej modele reprezentacji by viewModels
delegat automatycznie usług modelu prezentacji.
Jednak Jeśli mamy połączenie niestandardowych parametrów przekazanych platformą wdrażania zależności(Hilt), na przykład: repozytorium, kilka innych argumentów środowiska wykonawczego, na przykład: identyfikator wybranej kategorii i zapisany identyfikator stanu, aby pomóc nam przetrwać śmierć procesu w konstruktorze viewmodel - Jak możemy zapewnić wszystkie te parametry fabryce?
Proszę, podziel się mały przykład dla mojego zrozumienia