源码解析Android架构组件ViewModel
ViewModel 是google官方的MVVM架构组件,目前已经集成到了最新的支持库中了,是MVVM架构的核心组件之一。不懂MVVM的请看之前的文章: (一)Android官方MVVM框架实现组件化之整体结构 网上看到的ViewModel的博文千篇一律,实在忍不了,自己写看了源码写了一篇,欢迎拍砖! ViewModel是存储UI相关数据并不会因为旋转而销毁的类。 最为重要的就是ViewModel具有下面的生命周期,这就是ViewModel的最可贵之处: 正因为ViewModel有如此的生命周期,所以ViewModel在MVVM可以作为数据存储区,是连接View和Model重要组件,ViewModel的核心作用如下图所示: 1.ViewModel是怎么创建的? 2.ViewModel是怎么存储的? 3.ViewModel为什么可以实现旋转屏幕不销毁? 先放简单讲一下 ViewModel 的基本使用方法,我们在获取 ViewModel 的时候绝对不能直接使用 new 关键字去创建,需要使用 ViewModelProviders 去使用系统提供的反射方法去创建我们想要的 ViewModel ,下面是官方架构组件android.arch.lifecycle包下面的 ViewModelProviders 工具类用来获取ViewModel: /** * 注解by danxx on 2018