В AndroidX-Activity 1.2.0 ComponentActivity
(и, следовательно, AppCompatActivity
) реализован HasDefaultViewModelProviderFactory
, который по умолчанию возвращает ViewModelProvider.AndroidViewModelFactory.getInstance(getApplication())
из вашей деятельности / фрагмента, что позволяет вам получить приложение из этого AndroidViewModelFactory
без вам нужно явно передать его.
Затем эта фабрика создает экземпляр вашей ViewModel с помощью отражения с помощью конструктора __(application)
.
Как правило, лучше использовать SavedStateViewModelFactory
, чтобы иметь возможность чтобы получить SavedStateHandle
аналогичным образом (___(application, savedStateHandle)
), хотя.