【发布时间】:2019-07-17 08:22:18
【问题描述】:
阅读本文后,我对 ViewModel 有一些疑问:
https://developer.android.com/topic/libraries/architecture/saving-states
这里说您应该结合使用ViewModel 来进行配置更改(如屏幕旋转),并使用onSaveInstanceState() 来处理活动被销毁然后重新创建以保存 UI 的所有其他情况状态。
我的问题是我们如何知道在调用onCreate(Bundle) 时恢复状态的方式 - 我应该使用 ViewModel 还是应该使用接收到的包作为参数?当配置发生变化时,onSaveInstanceState()也会被调用,显然onCreate()总是被调用。
如果我只从 ViewModel 恢复状态,它不会始终保留正确的数据(因为活动可能由于配置更改以外的其他原因而被破坏)。如果我只使用我保存在onSaveInstanceState() 中的捆绑包,那我为什么要使用ViewModel 开头呢?
【问题讨论】:
标签: android android-activity persistence android-viewmodel android-mvvm