RxJava2使用归纳总结

  RXJava角色划分:
       observale: 被观察者
       observer: 观察者   子类Subject【科目】
   subscribe: 订阅
       被观察者.订阅(观察者),被观察者通知观察者
  被观察者类型: 
       热: 订阅完毕立即发送数据
       冷: 创建以后,等待观察者订阅,
       一旦订阅了,才发送数据

1. 添加依赖:

 compile 'io.reactivex.rxjava2:rxjava:2.0.8'
 compile 'io.reactivex.rxjava2:rxandroid:2.0.1'

2. 基础Api使用        订阅、取消订阅

 public void showDemo(View view) {
        //1. 创建被观察者
        //  一旦订阅,调用观察者的  onSubscribe方法
        Observable<String> observable=Observable.create(new ObservableOnSubscribe<String>() {

            @Override
            public void subscribe(ObservableEmitter<String> e) throws Exception {
                // 调用 观察者的 onNext 方法
                // 观察者 通知被 观察者 调用 onNext 方法
                e.onNext("健身");
                e.onNext("我要大保健");
                e.onNext("去酒吧");
                e.onComplete(); // 大保健完成
                //   e.onError(new Throwable("错误"));
            }
        });
     // 2. 创建观察者
        Observer<String> observer=new Observer<String>() {
            Disposable dd;
            @Override
            public void onSubscribe(Disposable d) {
                Log.e("denganzhi","onSubscribe");
                dd= d;
            }

            @Override
            public void onNext(String s) {
                // 取消订阅
                if(s.contains("大保健")){
                    dd.dispose();
                }
                Log.e("denganzhi1","onNext:"+s);
            }

            @Override
            public void onError(Throwable e) {
                Log.e("denganzhi","onError");
            }

            @Override
            public void onComplete() {
                Log.e("denganzhi","onComplete");
            }
        };
        //  3. 订阅
        observable.subscribe(observer);
    }


   
   
   
   
   
   

发布了84 篇原创文章 · 获赞 79 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/dreams_deng/article/details/104763334