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

Do we still need onSaveInstanceState() when we have ViewModels?

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

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

能否请您告诉我它在当前 ViewModel 案例中的用法

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

ViewModel 成功保存了配置更改的数据(Activity/Fragment 娱乐),但在 Process Recreation 的情况下不会有太大帮助.

为了即使在 Process Recreation 的情况下也能持久保存数据,您将需要使用 onSaveInstanceState()

但是最近的更新,通过SavedStateHandleViewModel直接允许您保存实例状态,这将自动在进程death/recreation中存活。这意味着,您不再需要使用 Activity/FragmentonSaveInstanceState 来跨进程死亡保存数据,只需在 ViewModel 中使用 SavedStateHandle,它的作用是一样的。