ViewModelProviders
- это просто служебный класс со статическими методами, его создавать не нужно (в любом случае, в нем нет методов экземпляра), поэтому устаревший конструктор не должен вызывать беспокойства.
Вы используете его, вызывая соответствующий метод of
для вашего варианта использования, передавая Fragment
или Activity
, а затем вызывая get
для ViewModelProvider
, который возвращает:
val viewModel = ViewModelProviders.of(thisFragment).get(MyViewModel::class.java)
Если вы не указали свою собственную фабрику во втором параметре метода of
, по умолчанию будет использоваться AndroidViewModelFactory
.Эта реализация может создавать подклассы ViewModel без параметров конструктора или с расширением AndroidViewModel
, например:
class MyViewModel(application: Application) : AndroidViewModel(application) {
// use application
}