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

 

三、使用ViewModelProvider創建ViewModel

//AppCompatActivity和Fragment這兩個頁面對象
//父類ComponentActivity和Fragment實現了LifecycleOwner對象
//父類FragmentActivity實現了ViewModelStoreOwner對象,又繼承了ComponentActivity
*ViewModel viewModel = new ViewModelProvider(getActivity()/this).get(*ViewModel.class);

四、由於我們使用Lifecycle會用到LifecycleOwner對象,我們在Lifecycle-V2.2.0之後只能使用new ViewModelProvider(),又會用到

ViewModelStoreOwner對象,所以可以參見官方文檔:https://developer.android.google.cn/topic/libraries/architecture/lifecycle#lco

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章