12、Jetpack架构组件

完美起航-Androidjetpack最佳总结和实践 

1、Lifecycle

Android Jetpack组件Lifecycle基本使用和原理分析_AboBack的博客-CSDN博客

2、ViewModel

Android Jetpack架构组件-ViewModel的使用及原理_小图包的博客-CSDN博客

3、LiveData 

Android Jetpack组件LiveData基本使用和原理分析 - 知乎

Jetpack架构组件 — LiveData与ViewModel的使用 - 掘金

Jetpack架构组件库-LiveData工作原理只一篇你就懂 - 知乎

Jetpack系列组件--LiveData从相遇到相知 - C/C++教程 - 找一找教程网

为什么要使用ViewModelLiveData,它有哪些优势?

ViewModel将视图和逻辑进行了分离。Activity或者Fragment只负责UI显示部分。具体的网络请求或者数据库操作则有ViewModel负责。类似于MVP模式中的Presenter层。ViewModel类旨在以注重生命周期的方式存储和管理界面相关的数据。让数据可在发生屏幕旋转等配置更改后继续留存。我们知道类似旋转屏幕等配置项改变会导致我们的 Activity 被销毁并重建,此时 Activity 持有的数据就会跟随着丢失,而ViewModel 则并不会被销毁,从而能够帮助我们在这个过程中保存数据。并且ViewModel不持有View层的实例,通过LiveDataActivity或者Fragment通讯,不用担心潜在的内存泄漏问题

LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 ActivityFragmentService)的生命周期。这种感知能力可确保LiveData当数据源发生变化的时候,通知它的观察者更新UI界面。同时它只会通知处于Active状态的观察者更新界面,如果某个观察者的状态处于PausedDestroyed时那么它将不会收到通知。所以不用担心内存泄漏问题。

12、Jetpack架构组件_第1张图片

你可能感兴趣的:(Android源码分析,android)