LiveData的讲解涉及到了Lifecycle的知识,如果你还不了解LifeCycle,请参考文档LifeCycle介绍。介绍LiveData是一个数据持有类,它可以通过添加观察者被其他组件观察其变更。LiveData的优点还有很多,如不会造成内存泄漏等。LiveData通常会配合ViewModel来使用,ViewModel负责触发数据的更新,更新会通知到LiveData,然后LiveData再通知活跃状态的观察者。看标注1处,如果我们的 UserProfileFragment 组件已经是destroy状态的话,将直接返回,不会被加入观察者行列。如果返回existing为null,说明以前没有添加过这个观察者,就将 LifecycleBoundObserver 作为 owner 生命周期的观察者,也就是作为 UserProfileFragment 生命周期的观察者。在看下我们实现的Observer:如果哪个控件要根据user的变更而及时更新,就在onChanged()方法里处理就可以了。到这里,LiveData已经能够分析完了,其实LiveData的实现还是要依赖于Lifecycle。

详解Android JetPack之LiveData的工作原理

详解Android JetPack之LiveData的工作原理

详解Android JetPack之LiveData的工作原理

详解Android JetPack之LiveData的工作原理

详解Android JetPack之LiveData的工作原理

详解Android JetPack之LiveData的工作原理