首页 > 解决方案 > Android Viewmodel 如何在内部工作,视图模型的内部工作

问题描述

Android Viewmodel 如何在内部工作?

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

标签: android

解决方案


Android Viewmodel 如何在内部工作?

AndroidViewModel旨在以这样一种方式存储和管理与 UI 相关的数据,使其能够在配置更改(例如屏幕旋转)中幸存下来。

ViewModel被先前调用它的活动调用,它重新使用该ViewModel对象的实例。但是,如果Activity被销毁或完成,对方会ViewModel调用onClear()清理资源的方法。意思是如果你在你的ViewModel:

override fun onClear() {
   super.onClear()
   clearAllLiveDataValues()
   disposeAllVariables() 
}

此处添加的函数调用将被调用。

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

ViewModel有自己的生命周期,允许自己在屏幕旋转期间恢复其状态以及它持有的瞬态数据。

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

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

我建议您阅读以下内容:


推荐阅读