Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当我们有ViewModels时,是否仍然需要onSaveInstanceState()?_Android_Kotlin_Mvvm_Viewmodel - Fatal编程技术网

Android 当我们有ViewModels时,是否仍然需要onSaveInstanceState()?

Android 当我们有ViewModels时,是否仍然需要onSaveInstanceState()?,android,kotlin,mvvm,viewmodel,Android,Kotlin,Mvvm,Viewmodel,现在有了视图模型,我们就可以处理配置更改和管理UI数据了,所以我现在觉得onSaveInstance()对我没有用处 与前面一样,我们过去在saveInstanceState()上存储较小的数据,并在配置期间将其还原,现在使用视图模型,我们可以轻松获得更新的数据。因此,如果我们使用ViewModel,您能告诉我现在使用的是onSaveInstanceState()和onRestoreInstancestate()的实际用法是什么吗 您能告诉我在当前的ViewModel中它的使用情况吗?当Andr

现在有了视图模型,我们就可以处理配置更改和管理UI数据了,所以我现在觉得onSaveInstance()对我没有用处

与前面一样,我们过去在saveInstanceState()上存储较小的数据,并在配置期间将其还原,现在使用视图模型,我们可以轻松获得更新的数据。因此,如果我们使用ViewModel,您能告诉我现在使用的是onSaveInstanceState()onRestoreInstancestate()的实际用法是什么吗


您能告诉我在当前的ViewModel中它的使用情况吗?当Android操作系统由于内存限制决定终止您的应用程序进程,然后重新创建它时,数据仍可能丢失。这与配置更改不同

ViewModel
成功地保存了配置更改中的数据(
Activity
/
Fragment
重新创建),但在流程重新创建的情况下,它没有多大帮助

为了在进程重新创建的情况下保持数据,您需要使用
onSaveInstanceState()

最近的更新允许您将实例状态直接保存在
ViewModel
中,这将在使用
savedstatehold
进行流程重新创建后仍然有效,也就是说,您不需要查看
活动/片段的
onSaveInstanceState
来持久化数据,只需使用
savedstatehold
ViewModel
它的作用将相同

请参阅这些额外资源,以获得更好的清晰度。