Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 Viewmodel如何在内部工作,视图模型的内部工作_Android - Fatal编程技术网

Android Viewmodel如何在内部工作,视图模型的内部工作

Android Viewmodel如何在内部工作,视图模型的内部工作,android,Android,Android Viewmodel在内部是如何工作的 Viewmodel如何在活动被销毁和设备旋转时重新创建时保存数据 Android Viewmodel在内部是如何工作的 Android的设计目的是存储和管理与用户界面相关的数据,使其能够在屏幕旋转等配置变化中生存 ViewModel被先前调用它的活动调用,它将重新使用该ViewModel对象的实例。但是,如果活动被销毁或完成,则对应的ViewModel调用onClear()方法来清除资源。这意味着如果您已将类似的内容添加到您的视图模型中: o

Android Viewmodel在内部是如何工作的

Viewmodel如何在活动被销毁和设备旋转时重新创建时保存数据

Android Viewmodel在内部是如何工作的

Android的设计目的是存储和管理与用户界面相关的数据,使其能够在屏幕旋转等配置变化中生存

ViewModel
被先前调用它的活动调用,它将重新使用该
ViewModel
对象的实例。但是,如果
活动
被销毁或完成,则对应的
ViewModel
调用
onClear()
方法来清除资源。这意味着如果您已将类似的内容添加到您的
视图模型中

override fun onClear() {
   super.onClear()
   clearAllLiveDataValues()
   disposeAllVariables() 
}
将调用此处添加的函数调用

Viewmodel如何在活动被销毁和设备旋转时重新创建时保存数据

ViewModel
有自己的功能,允许自己在屏幕旋转期间恢复其状态和保存的瞬态数据

注意:
Activity
ViewModel
的生命周期都是短暂的。不建议允许
ViewModel
在配置更改期间处理关键或敏感数据

当您需要在特定屏幕或应用程序的一部分中处理关键或敏感数据时,您的应用程序应使用共享prefs、安全存储(如有必要)、本地数据库或云存储

我建议您阅读以下内容:

看看这个。