RxJava2.x理论知识(1)

分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来! 网址:http://www.captainbed.net/yancyang

RxJava是一个非常著名的开源库,是ReactiveX(Reactive Extensions)的一种java实现。

RxJava是一种响应式扩展框架,有很多种实现,如RxAndroid,RsJS,RxSwift,RxRuby,RxCpp,RxGo等。

RxJava的使用通常需要三步走。

1.创建Observable

observable:被观察者。

2.创建Observer

observer:观察者

3.使用subscribe()订阅

subscribe:订阅
subscribe是被观察者与观察者之间的桥梁,这样就能衔接实现链式调用。
  /**
     * 我想大家都记得,刚接触代码的Hello World
     */
    @SuppressLint("CheckResult")
    public void helloWorld() {
        //  1.创建Observable
        Observable hello_world = Observable.just("Hello World");
        //3.使用subscribe()订阅并连接Observable和Observer
        hello_world.subscribe(consumer);
    }
// 2.创建Observer
    Consumer consumer = new Consumer() {
        @Override
        public void accept(String s) throws Exception {
            System.out.print(s);
        }
    };

Just()是RxJava的创建操作符,用于创建一个Observable,此类操作符还有很多,针对不同的Observable。

Consumer书上的意思为消费者。此处的意思就是Observer,单一类型参数

subscribe()有多个重载的方法。

subscribe()
subscribe(onNext)
subscribe(onNext,onError)
subscribe(onNext,onError,onComplete)
subscribe(onNext,onError,onComplete,onSubscribe)

我们经常见到的subscribe()

subscribe

对观察者的排放和通知进行操作

该订阅运算符是一个观察者连接到可观察到的胶水。为了使观察者能够看到Observable发出的项目,或者从Observable接收错误或完成的通知,它必须首先使用此运算符订阅该Observable。

Subscribe运算符的 典型实现可以接受一到三个方法(然后构成观察者),或者它可以接受实现包含这三种方法的接口的对象(有时称为 Observer或Subscriber):

onNext

只要Observable发出一个项目,Observable就会调用此方法。此方法将Observable发出的项作为参数。

onError

Observable调用此方法以指示它无法生成预期数据或遇到其他一些错误。这将停止Observable,它不会进一步调用 onNext或onCompleted。该onError方法将参数作为参数指示导致错误的原因(有时像Exception或Throwable这样的对象,有时候是一个简单的字符串,具体取决于实现)。

onCompleted

如果Observable调用onNext了最后一次,如果它没有遇到任何错误,则会调用此方法。
如果Observable在观察者订阅之前没有开始发射物品,则称其为“冷”Observable; 如果Observable可以在任何时间开始发出物品,则它被称为“热”Observable,并且订户可以在其开始之后的某个时刻开始观察所发射物品的序列,从而错过了在订阅之前发射的任何物品.

参考文档:http://reactivex.io/documentation/operators/subscribe.html

下一章描述:
1.subscribe()
2.“冷”Observable
3.“热”Observable

RxJava2.x理论知识(1)_第1张图片
CSDN就停止更新Rxjava2.x的文章了,如果想要了解更多的,来我的微信订阅号吧。

强烈推荐

分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来! 网址:http://www.captainbed.net/yancyang

你可能感兴趣的:(Rxjava,开启RxJava的学习之路,RxJava2.0,基础,RxJava2.0,yancyang)