ViewModel 時遇到的坑

通過 Activity 獲取 ViewModel 時遇到的坑:

在 Application.ActivityLifecycleCallbacks 中的 onActivityCreated 方法中獲取 ViewModel 時, Activity 每重建一次, 獲取的 ViewModel 都是重新構建後的新實例, 並不能讓 ViewModel 以及 ViewModel 中的數據倖免於 Activity 重建, 所以不要此方法中獲取 ViewModel

在 Activity 的 onDestroy 方法中不能獲取 ViewModel, 會報錯

通過 Fragment 獲取 ViewModel 時遇到的坑:

在 FragmentManager.FragmentLifecycleCallbacks 中的 onFragmentAttached 方法中獲取 ViewModel 時也會出現和 Activity 一樣的情況, 獲取的 ViewModel 是重新構建後的新實例, ViewModel 以及 ViewModel 中的數據不能倖免於 Activity 重建, 所以也不要此方法中獲取 ViewModel

在 FragmentManager.FragmentLifecycleCallbacks 中的 onFragmentDestroyed 方法中也不能獲取 ViewModel, 會報錯

在 Fragment 的 onDestroy 方法中不能獲取 ViewModel, 會報錯

作者:JessYan
鏈接:https://juejin.im/post/5a31f6b951882503eb4b4b21
來源:掘金
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

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