Android LiveData(一):介绍和简单使用

传统的组件间的通信方式有Handler、BroadcastReceiver,Interface、EventBus等等方式实现,他们有自己适合的应用场景,也有各自的弊端。这里介绍新的组件通信同时LiveData,它是一个数据持有类,具有以下特点:

  • 数据可以被观察者订阅
  • 能够感知组件(Fragment、Activity、Service))的生命周期
  • 组件处于active状态时,会通知观察者有数据更新

对于观察者模式,不妨先看一个自己模仿LiveData写的简单的例子,数据持有类:

public class JSLiveData {
   
    //持有的数据
    public Object data;

    //观察者的注册表
    List<JSObserver> observers;

    public JSLiveData() {
   
        this.observers = new ArrayList<>();
    }

    /**
     * 将观察者添加到注册表
     * @param observer
     */
    public void addObserver(JSObserver observer) {
   
        observers.add(observer);
    }

    /**
     * 发送数据
     * 触发接口回调
     * @param obj
     */
    public void postValue(Object obj) {
   
        this.data = obj

你可能感兴趣的:(框架原理,LiveData,框架原理,源码分析)