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

问题描述 投票:1回答:1

现在有了View模型,因为我们可以处理配置的变化和管理UI数据,所以onSaveInstance()我觉得现在如果对我来说没有用。

就像之前我们用onSaveInstanceState()存储较小的数据,并在配置过程中用来恢复,现在使用视图模型我们可以很容易的得到更新的数据。所以,请你告诉我 onSaveInstanceState()onRestoreInstancestate() 现在如果我们使用ViewModel。

请你告诉我它在当前情况下与ViewModel的用法

android kotlin mvvm viewmodel
1个回答
2
投票

当Android OS由于内存限制决定杀死你的应用进程,然后再重新创建的时候,数据还是会丢失。这与配置更改不同。

ViewModel 成功地保存了你的数据从配置更改(ActivityFragment Recreation),但在流程再造的情况下,它的作用不大。

为了在流程再造的情况下也能持久化数据,您需要使用 onSaveInstanceState().

最近的更新让你可以直接将实例状态保存在 ViewModel 流程中,将继续使用 SavedStateHandle 也就是说,你不需要仰望到 onSaveInstanceState 你的 Activity/Fragment 要持久化数据,只需使用 SavedStateHandle 在你 ViewModel 它的行为是一样的。

请参考这些额外的资源,以便更好地了解情况。 链接1 链接2

© www.soinside.com 2019 - 2024. All rights reserved.