RxJava:walfud 彻底搞懂 RxJava 系列 笔记

来源:互联网 发布:企业淘宝开店流程步骤 编辑:程序博客网 时间:2024/06/11 17:54

walfud 彻底搞懂 RxJava 系列:
彻底搞懂 RxJava — 初级篇
彻底搞懂 RxJava — 中级篇
彻底搞懂 RxJava — 高级篇

初级篇:

            Observable                .create(new Observable.OnSubscribe<String>() {//下面理解的第1步                    @Override                    public void call(Subscriber<? super String> subscriber) {                        subscriber.onNext("hello");                    }                })                .subscribe(new Subscriber<String>() {//下面理解的第2步                    @Override                    public void onCompleted() {                    }                    @Override                    public void onError(Throwable e) {                    }                    @Override                    public void onNext(String s) {                        textView.setText(s);                    }                });

主要是Observable调用create以及构造完成后调用subscribe方法两步的分析:

  1. Observable.create实际上创建了一个Observable对象和一个OnSubscribe对象,OnSubscribe可以理解成事件流。
  2. create后调用的subscribe实际上是调用第一步的创建的OnSubscribe的call方法,可以理解成将该Observable的事件流指向我们new出的Subscriber

中级篇:
主要以map操作符为例,讲解了‘变换’操作:

  1. 第一步同样是create函数,与初级篇相同,创建了Observable和OnSubscribe两个对象
  2. 调用map函数,也就是调用lift,主要的变换操作就是lift函数中完成的:
    ①创建了一个OperatorMap,并将map中的处理过程也就是new的Fun1这个接口赋给了OperatorMap中的transformer对象。
    ②创建了第二个Observable和一个Subscriber。
    ③将第一个Observable(也就是我们调用Observable.create所创建的)的OnSubscribe指向上一步的Subscriber,也就是说将我们代码所产生的事件首先传递给了lift函数中创建的Subscriber处理。
    ④ 弟③步中lift函数创建的Subscriber的处理过程是
    o.onNext(transformer.call(t)); 这个o便是我们需要自己创建的Subscriber
  3. 最后我们调用subscribe函数并传入我们自己创建的Subscriber即可

高级篇:
还没仔细看,主要是关于线程的问题,貌似也是通过创建新的Observable和Subscriber作为代理进行线程间的切换

原创粉丝点击