Android ViewModelProviders被弃用解决方

2020-10-09  本文已影响0人  KingWorld

转载:android ViewModelProviders被弃用解决方案

最近在研究Android Jetpack的过程中,发现Android官方网站一处错误的地方,记录下来方便后来者使用。

可直接查看下方第三点-解决方案。

另外Android-Jetpack ROOM+DataBinding+LiveData+ViewModel+Lifecycles使用可以参照我的demo:https://github.com/VcStrong/JetpackDemo.git

一、错误:在创建ViewModel对象的时候,提示ViewModelProviders已弃用。

ViewModelProviders.of():不建议使用

二、查阅官方文档发现:V2.2.0之后弃用了ViewModelProviders,建议使用new ViewModelProvider()方式

参考:https://developer.android.google.cn/jetpack/androidx/releases/lifecycle#version_220_3

image

三、使用ViewModelProvider创建ViewModel

//AppCompatActivity和Fragment这两个页面对象
//父类ComponentActivity和Fragment实现了LifecycleOwner对象
//父类FragmentActivity实现了ViewModelStoreOwner对象,又继承了ComponentActivity
myViewModel = new ViewModelProvider(this).get(TestViewModel.class);

四、由于我们使用Lifecycle会用到LifecycleOwner对象,我们在Lifecycle-V2.2.0之后只能使用new ViewModelProvider(),又会用到ViewModelStoreOwner对象,所以可以参见官方文档:https://developer.android.google.cn/topic/libraries/architecture/lifecycle#lco

image
上一篇下一篇

猜你喜欢

热点阅读