本文默认读者已经学习了Lifecycle, (我的Lifecycle 讲解:Android官方架构组件 Lifecycle 让你再也不会忘记清空资源)
现在我们来看看另外一个Google 在2018开发者大会上推出的一系列新的架构组件之一的--LiveData
是什么:
首先可以告诉大家,LiveData 的本质是一个观察者模式,不同于其他基于观察者模式的组件(Rxjava,EventBus)等,它能够自动解除订阅,从而更好地避免了内存泄漏,为什么它能够自动解除订阅呢?因为它的内部实现了LifecycleObserver 接口,所以它可以自动感知Activity 的生命周期,从而自动解除订阅,
这种设计非常巧妙——在我们初识 Lifecycle 组件时,总是下意识认为它能够对大的对象进行有效生命周期的管理(比如 Presenter),实际上,这种生命周期的管理我们完全可以应用到各个功能的基础组件中,比如大到吃内存的 MediaPlayer(多媒体播放器)、绘制设计复杂的 自定义View,小到随处可见的LiveData
,都可以通过实现LifecycleObserver
接口达到 感应生命周期并内部释放重的资源 的目的。
用法:
关于LiveData 单独使用的方法:
首先,导入官方