Android APP开发中,开发者们都想有一个公共的组件,可以实现后台数据的监听,同时实时更新到UI进行显示,从而大大简化开发过程。Google针对这一开发需求,提供了Jetpack LiveData组件。下面我们来一起看下LiveData的基本使用方法吧!
首先,先了解下使用LiveData的优点。
- 确保UI与数据状态匹配
- 不需要担心内存泄漏问题
- Activity停止后数据变化不会导致Crash
- 不再需要人工生命周期的处理
- 始终使用最新的数据
- 正确应用配置更改
- 共享资源
LiveData遵循观察者模式,实现LifeCycle接口,因此可以监听数据的实时更新,感知应用的生命周期,让开发者能够更多的关注业务具体实现。
下面我们来通过一个小Demo来简单介绍下LiveData的基本使用方法。
![file file](https://i-blog.csdnimg.cn/blog_migrate/fdfc90172e0b22d6776c4b4ccf33acfc.gif)
本例中,数据变化通知UI的显示由四个控件体现,分别为:系统时间(Long型)、系统时间、天气、远端数据。针对这四个控件的动态显示,我们分别来看下其是如何实现的。
框架搭建
APP首先需要搭建使用LiveData的环境:
1. 导入依赖包
//app build.gradle
dependencies {
...
implementation deps.lifecycle.viewmodel_ktx
implementation deps.lifecycle.livedata_ktx
...
}
2. 创建ViewModel类(用于LiveData数据的封装,和UI交互)
class LiveDataViewModel(
private val dataSource: DataSource
) : ViewModel() {...}
3. 布局文件中引用ViewModel对象
<layout>
<data>
<variable
name="viewmodel"
type="com.android