【发布时间】:2019-05-23 01:06:34
【问题描述】:
查看Google docs 的ViewModel,他们展示了以下示例代码,了解如何获得ViewModel:
val model = ViewModelProviders.of(this).get(MyViewModel::class.java)
当使用最新的依赖android.arch.lifecycle:extensions:1.1.1 时,没有这样的类ViewModelProviders。
去documentation换ViewModelProviders,看到评论说:
此类在 API 级别 1.1.0 中已弃用。使用 ViewModelProvider.AndroidViewModelFactory
问题是,当尝试使用ViewModelProvider.AndroidViewModelFactory 时,找不到等效的of 方法来获取ViewModel 的实例。
我尝试做什么:
ViewModelProvider.AndroidViewModelFactory.getInstance(application).create(PlayerViewHolder::class.java)
因此方法名称为create,每次调用它时我都会得到一个新的 ViewModel 实例,这不是我想要的。
有什么想法可以替换上面不推荐使用的代码吗?
【问题讨论】:
-
使用单例模式或改为AndroidX
标签: android android-gradle-plugin android-architecture-components android-viewmodel