Skip to content

ViewModel

概念

在项目里添加ViewModel类。
这个类来自一个叫lifecycle-extensions的Android Jetpack库:
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'

ViewModel持有模型对象。
使用ViewModel,可以把所有要显示在用户界面上的数据汇集在一处,统一格式化加工处理供其他对象获取。

在Activity首次访问ViewModel对象时,ViewModelProvider会创建并返回一个QuizViewModel新实例。
在设备配置改变之后,Activity再次访问ViewModel对象时,它返回的是之前创建的QuizViewModel。
在MainActivity完成使命销毁时(比如用户按了回退键),ViewModel-Activity这对好朋友也就从内存里抹掉了。

如何让ViewModel在进程消亡时也能保存状态数据?

Android团队正努力改善ViewModel开发使用体验,已发布lifecycle-viewmodel-savedstate这个新库,让ViewModel在进程消亡时也能保存状态数据。

注意

请在Activity里惰性初始化ViewModel对象。

请勿转载