Вам понадобится Application
в ViewModel.Factory
, чтобы создать экземпляр AndroidViewModel
.
Пути достижения этого
- если вы создаете экземпляр ViewModel в своей Деятельности / Фрагменте, тогда сделайте
getApplicationContext()
и приведите его как Application
. Если во фрагменте вы можете получить активность хостинга и получить приложение от него.
// Kotlin code
viewModel = ViewModelProviders.of(this,
ViewModel.Factory(activity?.application!!, param1, param2)) // from an fragment onViewCreated()
- если ваше приложение имеет класс
Application
, предоставьте метод для получения экземпляра приложения.
// JAVA code
public static Application getApp() {
return YourApplication.instance; // instance will be an static field in Application class
}