Я просматриваю эту кодовую таблицу: https://developer.android.com/codelabs/android-lifecycles#6 В нем объясняется, как использовать SavedStateHandle в модели представления, чтобы пережить смерть процесса. Конструктор модели представления выглядит следующим образом:
private SavedStateHandle mState;
public SavedStateViewModel(SavedStateHandle savedStateHandle) {
mState = savedStateHandle;
}
И модель представления инициализируется в действии следующим образом:
mSavedStateViewModel = new ViewModelProvider(this).get(SavedStateViewModel.class);
Когда вызывается конструктор ViewModel? И как модель представления получает savedStateHandle
параметр модели представления?
Изменить:
Я нашел ответ на свой вопрос в этом блоге: https://www.rockandnull.com/viewmodel-savedstate/
В нем говорится, что еслиSavedStateHandle
является ли единственным параметром в конструкторе нашей модели представления by viewModels
делегат автоматически предоставляет его модели представления.
Однако, Если у нас есть комбинация пользовательских параметров, предоставленных платформой внедрения зависимостей(Hilt), например: репозиторий, несколько других аргументов среды выполнения, например: идентификатор выбранной категории и сохраненный идентификатор состояния, чтобы помочь нам пережить смерть процесса в конструкторе viewmodel - Как мы можем предоставить все эти параметры фабрике?
Пожалуйста, опубликуйте небольшой пример для моего понимания