Jetpack学习笔记
参考网站
Android开发教程(2019最新版,使用JetPack)
横向对比Jetpack、RxJava、Glide框架中对组件生命周期Lifecycle感知原理
学习笔记
ViewModel(持有页面数据)
以注重生命周期的方式管理界面相关的数据。
1
ViewModelProviders.of(act)创建ViewModle
原理: 通过添加一个 fragment 到 activity 中,这个 fragment 便能够接收到各个生命周期回调。
-
比ViewModel活得长一些,可以处理因为系统内存不足等引起的act被清理。
等价于自己处理
onSaveInstanceState()
LiveData(通知页面数据to视图)
感知数据的变化,通知视图
使用:
1
2
3调用 liveData.observe(),让界面监听数据的改变
liveData.setValue()设置数据(必须主线程)
liveData.postValue()设置数据理解:观察者模式;可以感知生命周期(如:act destroy后就不通知了)。
实践:LiveData通常会配合ViewModel来使用,ViewModel负责触发数据的更新,更新会通知到LiveData,然后LiveData再通知活跃状态的观察者。
原理:依赖于Lifecycle,所以可以感知
LifecycleOwner
生命周期的变化。