当我们有ViewModels时,我们还需要onSaveInstanceState()吗?

时间:2020-05-07 10:32:17

标签: android kotlin mvvm viewmodel

现在有了View模型,因为我们可以处理配置更改并管理UI数据,所以现在感觉onSaveInstance()对我来说毫无用处。

像以前一样,我们以前在onSaveInstanceState()上存储了较小的数据,并在配置期间用于还原它,现在使用视图模型,我们可以轻松地获取更新的数据。因此,如果我们使用ViewModel,请现在告诉我 onSaveInstanceState() onRestoreInstancestate()的实际用法是什么。

请告诉我在当前情况下使用ViewModel的用法

1 个答案:

答案 0 :(得分:2)

当Android OS由于内存限制而决定终止应用程序进程并随后重新创建它时,数据仍然可能丢失。这与配置更改不同。

ViewModel成功地保存了配置更改(Activity / Fragment重新创建)中的数据,但是对于“过程重新创建”并没有太大帮助。

为了即使在过程重新创建的情况下也能保留数据,您将需要使用onSaveInstanceState()

最近的更新使您可以直接将实例状态保存在ViewModel中,这样在使用SavedStateHandle进行过程重新创建后就可以保存下来,也就是说,您不需要查询{{1}中的onSaveInstanceState }保留数据,只需在Activity/Fragment中使用SavedStateHandle即可。

请参考这些其他资源,以提高清晰度。 link1 link2