ViewModel架构组件原理解析:
什么是ViewModel:
继续接着上一次解锁Android高阶技能,探秘实战Jetpack<十一>-------解密Jetpack工具库核心组件1的Jetpack组件学习, 这次又来学习一个高频会使用到的一个组件,如标题所示,ViewModel,先来了解一下它:
- 它是具备宿主生命周期后期感知能力的数据存储组件。但是如之前介绍,它只能感知宿主销毁的事件。
- ViewModel保存的数据,在页面因配置变更导致页面销毁重建之后依然也是存在的。其中配置变量可能有横竖屏切换、分辨率调整、权限变更、系统字体样式变更...呃,貌似这种配置变更在实际中出现也比较少吧,那ViewModel的作用也不是特别的大呀,但是!!!因为内存电量不足导致系统被回收这种场景是不是实际很容易出现,此时利用ViewModel也可以达到页面的数据再次被复用的呢,这样来说ViewModel的使用意义就极大了,当然此时需要使用SavedState能力才行,但是它与常规的ViewModel的实现原理又大不一样,在接下来的学习中会来进行详细剖析的。