前言
在上一节,我们讲到了ViewModel
的使用,ViewModel
的两大优势是:数据隔离和Activity
整个生命周期保持数据持有。大家感兴趣的话,可参看以下文章:
ViewModel的使用
那么今天就让我们来学习下LiveData
的使用吧
今天涉及内容:
- 为什么要用
LiveData
? -
LiveData
在activity中的使用
2.1 定时刷新的实现方式
2.2LiveData
在activity
中实现 - 需要注意的问题
3.1 LiveData 使用注意
3.2 Timer 为啥放到 ViewModel 中 - 效果图和项目结构图
运行效果图如下:
一. 为什么要用 LiveData
当我们在进行网络请求这一类的动作并获得请求返回的数据时,需要一个回调监听
来更新界面ui
,于是我们就需要LiveData
,LiveData
就是我们常理解的回调监听
,也可以认为是观察者
模式,在其回调的方法中可以直接刷新UI
。
二. LiveData 在 activity 中的使用
下面以定时器定时刷新界面数字为例进行讲解。
2.1 定时刷新的实现方式
首先,我们考虑下是实现定时刷新UI
的方式,有Thread(handler.post)
,Timer
,RxBus
等,但这些都只能实现周期效果,刷新UI
的时候,还是需要Handler+message
做配合,让代码显得臃肿。但是现在,我们可以用LiveData
直接监听数据变化,并直接处理UI
刷新。
2.2 LiveData 在 activity 中实现
下面先给出MainActivity
的代码: