最近参与到后端的工作中,虽然以前在工作中使用过PHP,但是这次使用的是Java,开发思路和方式有所不同。后端开发中,做接口也是需要处理大量的业务逻辑关系,同时一些事务之类的技术因素也要考虑好,在架设项目的时候就已经考虑好手动控制事务,Dao与Service层的方法都有Connection对象传入,用作事务控制。数据库连接池也是很重要,不然每次重新获取数据库连接对象也是一个耗时操作,数据库连接池使用c3p0。

LiveData简介

LiveData是Jetpack的Architecture部分的一个类,它是一个数据容器。简单来说,他是一个泛型类,能在内部持有一个泛型类型对象的实例,可以对其添加监听器,当我们调用更新数据的方法,所有的监听器都能收到回调。

听起来好像没什么特点,但是先来看看LiveData的最优秀的两个特性。

1. 添加的监听器自动绑定生命周期,当Activity、Fargment的生命周期结束的时候,LiveData对象自动销毁监听器。

2.当绑定的生命周期进入暂停的时候,监听器不会收到回调,当生命周期重新进入的时候,监听器会再次收到回调。

MutableLiveData

MutableLiveData是实现了LiveData抽象类的类,其实并没有增加任何功能。

public class MutableLiveData<T> extends LiveData<T> {
    @Override
    public void postValue(T value) {
        super.postValue(value);
    }

    @Override
    public void setValue(T value) {
        super.setValue(value);
    }
}

添加监听器

添加监听器目的就是为了随时获取最新值变化的回调,下面看看代码示例。

MutableLiveData<String> liveData = new MutableLiveData<>();
liveData.observe(mFragment, new Observer<String>() {
    @Override
    public void onChanged(@Nullable String o) {
        Log.e("LiveData:", o);
    }
}); 

LiveData.observe(@NonNull LifecycleOwner owner, @NonNull Observer<T> observer)方法需要LifecycleOwner是接口实例参数,Fragment、Activity已经实现此接口。

更新数据

当我们添加了监听器,任何时候我们可以更新LiveData里面的数据,其他监听器就会收到回调。

// 在主线程中使用
void setValue (T value) 

// 在工作线程中使用
void postValue (T value) 

最新文章

  1. spring+mybatis多数据源动态切换
  2. datatables中的Options总结(2)
  3. javascript 实现des解密加密
  4. 基于redis和docker的guestbook留言簿案例
  5. 微信JS SDK Demo 官方案例[转]
  6. linux 目录下文件批量植入和删除,按日期打包
  7. iOS7模拟器安装
  8. SqlServer索引及优化详解
  9. 响应式SharePoint模版页
  10. NOIP201103瑞士轮
  11. Javascript 笔记与总结(2-11)暴力操作节点
  12. 免费api大全(更新中)
  13. Hand 3D Pose Estimation
  14. iOS 学习笔记 一 (2015.02.05)
  15. iOS webview加载html自定义选项框选词
  16. 三星智能手机如何运用Smart Switch?
  17. hdu 5256 序列变换(LIS最长上升子序列)
  18. 【网络协议】TCP交互数据流和数据流成块
  19. Jenkins中deploy插件的deploy war/ear to a container与deploy artifacts to maven reepository区别
  20. Java虚拟机的锁优化

热门文章

  1. Linux给MySQL创建用户,并分配权限
  2. Schlumberger Petrel 2016.3 地震解释 油藏模拟
  3. JDBC事务的相关知识
  4. py001
  5. 不支持iframe框架?出来吧pdf
  6. jpa 使用笔记
  7. 如何在Jenkins上配置一个可以从其它Job取回Artifact的Job
  8. ls file less
  9. EL有11个隐含对象
  10. Git 工作环境配置