当我们有 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/Fragment
的 onSaveInstanceState
来跨进程死亡保存数据,只需在 ViewModel
中使用 SavedStateHandle
,它的作用是一样的。
现在有了 View 模型,因为我们可以处理配置更改和管理 UI 数据,所以我觉得现在的 onSaveInstance() 对我来说没用了。
就像之前我们使用 onSaveInstanceState() 存储较小的数据并在配置期间恢复它一样,现在使用视图模型我们可以轻松获取更新的数据。那么,如果我们使用 ViewModel,请告诉我现在 onSaveInstanceState() 和 onRestoreInstancestate() 的实际用法是什么。
能否请您告诉我它在当前 ViewModel 案例中的用法
当 Android OS 由于内存限制决定终止您的应用程序进程然后重新创建它时,数据仍然可能丢失。这与配置更改不同。
ViewModel
成功保存了配置更改的数据(Activity
/Fragment
娱乐),但在 Process Recreation 的情况下不会有太大帮助.
为了即使在 Process Recreation 的情况下也能持久保存数据,您将需要使用 onSaveInstanceState()
。
但是最近的更新,通过SavedStateHandleViewModel
直接允许您保存实例状态,这将自动在进程death/recreation中存活。这意味着,您不再需要使用 Activity/Fragment
的 onSaveInstanceState
来跨进程死亡保存数据,只需在 ViewModel
中使用 SavedStateHandle
,它的作用是一样的。