Jetpack里面分了几个系列,分别是ViewModel、Databinding、LifeCycle、LiveData。
其实这些概念我们之前都接触过,比如Databinding就很类似于ButterKnife。
首先是ViewModel
ViewModel专门用于提供一些数据。当发生配置变更,比如说页面的屏幕旋转的时候,这时候一般的数据就会销毁并且重新创建,如果这些数据是一长串的列表数据,就需要请求网络或者重新加载,过程会比较慢。
而关键用法也很简单
ViewModelProviders.of(<Your UI controller>).get(<Your ViewModel>.class)
通过这句话就可以得到自己定义的ViewModel,ViewModel里面可以定义一些数据,但不能持有context上下文。of函数里面传入该ViewModel所共享的范围,如果在这个范围内,改ViewModel对象就不会因为界面的切换、或者说屏幕的切换而发生数据的销毁。