【发布时间】:2018-01-12 12:48:17
【问题描述】:
尝试了解使用 ViewModel 保留 Activity 或 Fragment 的某些状态并使用 savedInstanceState 包保存它们的区别。
在配置更改等情况下,当 Activity/Fragment 被 os 销毁时,ViewModel 实例保持活动状态,这样当 os 重新创建 Activity/Fragment 时,可以从仍然有效的 ViewModel 实例获取数据。
是否适用于最小化应用并重新打开?
做了一些测试,似乎最小化应用程序并重新打开应用程序,操作系统将重新创建活动/片段,其中 onCreate() 中的 stavedInstanceState 包不为空(调用 onSaveInstanceStae() 时保存的内容)。但是 ViewModel 已被清除,因此创建了一个没有以前数据的新实例。
这是否意味着虽然在这种情况下操作系统可以检索保存的实例状态并传递给活动/片段的 onCreate(),但是 ViewModel 必须是没有先前实例数据的新实例,或者 viewModel 需要这样做一些额外的步骤以便跨实例存储/恢复数据?
【问题讨论】:
-
Check this 了解更多信息。
-
通过最小化应用程序,您的意思是只需按下主页按钮即可将您的应用程序置于后台?
标签: android architecture viewmodel