抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。

ViewModel 具有生命周期意识,会自动存储和管理 UI 相关的数据,即使设备配置发生变化后数据还会存在,我们就不需要在 onSaveInstanceState 保存数据,在 onCreate 中恢复数据了,使用 ViewModel 这部分工作就不需要我们做了,很好地将视图与逻辑分离开来。

生命周期

ViewModel 的一个重要作用是帮助 Activity 分担部分工作,专门用来存放与界面相关的数据,减轻 Activity 负担。

另外,如果系统销毁或重新创建界面控制器,则存储在其中的任何瞬态界面相关数据都会丢失。而 ViewModel 的生命周期和 Activity 不同,只有 Activity 退出时才会跟着一起销毁。

ViewModel 对象存在的时间范围是获取 ViewModel 时传递给 ViewModelProviderLifecycleViewModel 将一直留在内存中,直到限定其存在时间范围的 Lifecycle 永久消失:

  • 对于 activity,是在 activity 完成时;
  • 对于 fragment,是在 fragment 分离时。

通常在系统首次调用 Activity 对象的 onCreate() 方法时请求 ViewModel

ViewModel 的生命周期

todo

评论



Modify from Volantis theme Powered by Hexo