RxJava在Android中使用笔记
使用RxJava可以方便实现观察者模式,数据转换和线程之间通信
https://github.com/ReactiveX/RxJava
在Android中使用RxAndroid增加安卓主线程支持:
https://github.com/ReactiveX/RxAndroid
实际开发中在gradle中注册对应的依赖即可:
compile 'io.reactivex:rxandroid:1.1.0'
观察者模式一般要有两个对象:
1.被观察者:Obserable
2.观察者:Observer
观察者和被观察者绑定后,被观察者在某种事件发生时会向所有观察它的观察者发送事件,即调用观察者的回调函数。
使用java.util里的观察者应该是这样的:
import android.util.Log;
import java.util.Observable;
import java.util.Observer;
public class ObserverTest {
    void test0() {
        //创建被观察者
        DemoObserable obserable = new DemoObserable();
        //创建一个观察者
        Observer observer1 = new Observer() {
            //观察者接收到事件时的操作
            @Override
            public void update(Observable observable, Object data) {
                Log.e("TAG", "ToObserver1: " + data);
            }
        };
        //添加绑定
        obserable.addObserver(observer1);
        //被观察者发送事件
        obserable.subscribe("Hello World!!");
        //被观察者将观察者移除
        obserable.deleteObserver(observer1);
    }
    //被监听者
    public class DemoObserable extends Observable {
        //被监听者发送数据给所有观察者
        void subscribe(String data) {
            setChanged();
            notifyObservers(data);
        }
    }
}假设观察者有多个,可以依次注册,删除:
//创建被观察者
        DemoObserable obserable = new DemoObserable();
        //创建一个观察者
        Observer observer1 = new Observer() {
            //观察者接收到事件时的操作
            @Override
            public void update(Observable observable, Object data) {
                Log.e("TAG", "ToObserver1: " + data);
            }
        };
        //创建一个观察者
        Observer observer2 = new Observer() {
            //观察者接收到事件时的操作
            @Override
            public void update(Observable observable, Object data) {
                Log.e("TAG", "ToObserver2: " + data);
            }
        };
        //添加绑定
        obserable.addObserver(observer1);
        obserable.addObserver(observer2);然而,我们接下来使用 rx.Observer, rx.Observable, 思想也是类似的: 相关推荐
  韩伟佳    2020-10-09  
   wuleihenbang    2020-09-16  
   zzqLivecn    2020-07-09  
   chenjinlong    2020-06-10  
   yinbaoshiguang    2020-06-09  
   sgafdsg    2020-06-04  
   ustcrding    2020-06-03  
   chenjinlong    2020-06-03  
   AndroidGA    2020-06-01  
   安辉    2020-05-27  
   绿豆饼    2020-05-26  
   CNETNews    2020-05-26  
   xilove0    2020-05-12  
   绿豆饼    2020-05-12  
   ChainDestiny    2020-05-07  
   doomvsjing    2020-05-07  
   hqulyc    2020-05-05  
   lyccsu    2020-04-30