RxJava(一)理论学习

一:什么是RxJava?

RxJava 也叫观察者模式。
RxJava 包括:
- Observerable: 被观察者,(数据发送者)
- Observer: 观察者 (也叫消费者、数据处理者)
- Subscribe: 订阅、事件
其实我们只需要理解哪个是数据发送者哪个是数据处理者,它们之间又有什么样的事件订阅关系即可。

二:RxJava的优点。

RxJava具有异步、响应式、灵活、简洁等特性。

三:RxJava的创建。

创建Observerable:

   /**
     * 创建Observerable 目的发送整数 让消费者打印出来
     */
    private Observable<Integer>  creatObserverable() {
        return  Observable.create(new ObservableOnSubscribe<Integer>() {
            @Override
            public void subscribe(ObservableEmitter<Integer> e) throws Exception {
                    e.onNext(1);
                    e.onNext(2);
                    e.onNext(3);
                    e.onNext(4);
                    e.onComplete();
            }
        });
    }

创建Observer:

 /**
     * 创建Observer 处理数据
     */
    private  Observer<Integer> creatObserver() {
        return  new Observer<Integer>() {
            @Override
            public void onSubscribe(Disposable d) {
                Log.d("TAG","onSubscribe被执行");
            }

            @Override
            public void onNext(Integer s) {
                Log.d("TAG","onNext被执行:"+s);
            }

            @Override
            public void onError(Throwable e) {
                Log.d("TAG","onError被执行");
            }

            @Override
            public void onComplete() {
                Log.d("TAG","onComplete被执行");
            }
        };

    }

订阅:

   Observable<Integer> observerable = creatObserverable();
            Observer<Integer> observer = creatObserver();
            observerable.subscribe(observer);

运行结果:

03-03 14:27:32.726 8598-8598/com.pse.rxandroid D/TAG: onSubscribe被执行
03-03 14:27:32.727 8598-8598/com.pse.rxandroid D/TAG: onNext被执行:1
03-03 14:27:32.727 8598-8598/com.pse.rxandroid D/TAG: onNext被执行:2
03-03 14:27:32.727 8598-8598/com.pse.rxandroid D/TAG: onNext被执行:3
03-03 14:27:32.727 8598-8598/com.pse.rxandroid D/TAG: onNext被执行:4
03-03 14:27:32.727 8598-8598/com.pse.rxandroid D/TAG: onComplete被执行

subscribe()有多个重载方法,每个方法的侧重点不同:

    public final Disposable subscribe() {}
    public final Disposable subscribe(Consumer<? super T> onNext) {}
    public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError) {} 
    public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete) {}
    public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete, Consumer<? super Disposable> onSubscribe) {}
    public final void subscribe(Observer<? super T> observer) {}

上面便是最简单的RxJava的使用,但是RxJava还有很多复杂的操作符,比如flatMap()等我们第二章去了解。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的...
    Jason_andy阅读 5,819评论 7赞 62
  • 前言我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard...
    占导zqq阅读 9,410评论 6赞 151
  • 原文地址:http://gank.io/post/560e15be2dca930e00da1083 前言 我从去年...
    AFinalStone阅读 2,363评论 5赞 23
  • 杨子住在我楼下,有点神经质。时不时的上楼找我聊天,我很烦。但碍于面子,不好拒绝她。我总找借口要出门而躲出去。 楼下...
    下雪的时候高兴阅读 300评论 0赞 1
  • PD于女儿: 今天,抽空给女儿讲了一下情感脸谱图,结果有点让我意外,正面管教家长课上也讲过,人类的大脑要到25岁才...
    Wendy雯迪阅读 335评论 0赞 0

友情链接更多精彩内容