Jetpack学习笔记

参考网站

官网

Android开发教程(2019最新版,使用JetPack)

横向对比Jetpack、RxJava、Glide框架中对组件生命周期Lifecycle感知原理

学习笔记

  • ViewModel(持有页面数据)

    以注重生命周期的方式管理界面相关的数据。

    1
    ViewModelProviders.of(act)创建ViewModle

    原理: 通过添加一个 fragment 到 activity 中,这个 fragment 便能够接收到各个生命周期回调。

  • ViewModelSavedState

    比ViewModel活得长一些,可以处理因为系统内存不足等引起的act被清理。

    等价于自己处理onSaveInstanceState()

  • LiveData(通知页面数据to视图)

    感知数据的变化,通知视图

    使用:

    1
    2
    3
    调用 liveData.observe(),让界面监听数据的改变
    liveData.setValue()设置数据(必须主线程)
    liveData.postValue()设置数据

    理解:观察者模式;可以感知生命周期(如:act destroy后就不通知了)。

    实践:LiveData通常会配合ViewModel来使用,ViewModel负责触发数据的更新,更新会通知到LiveData,然后LiveData再通知活跃状态的观察者。

    原理:依赖于Lifecycle,所以可以感知LifecycleOwner生命周期的变化。