特点:链式编程、线程切换方便
有三个主要对象:Observable、Observer、Subscribe
很多人喜欢把这三个对象分别叫做被观察者、观察者、以及订阅。但这种命名方式其实不太好理解,因为往往在代码中还要用到subscribeOn和observeOn这两个方法,还有一个继承了Observer的Subscriber抽象类,刚开始接触RxJava时很容易将这几个名称个弄混,毕竟相似度太高了。
所以我觉得可以用另外一种命名方式。
Observable——邮局
Observer——收信者
Subscribe——送信
这样就清晰多了,Observable有很多方法可以对数据进行处理,而他返回的对象都是Observable,就相当于是在邮局(Observable)内部对信件(数据)进行处理,不管怎么样,这个阶段都不会和收信者有任何关系。
邮局(Observable)对信件(数据)做好处理,那么接下来就要送信了,利用一个邮递员(Subscribe)将信件送到收信者(Observer)手中。
这种命名方式就清晰多了。
Observable——>送信——>Observer
subscribeOn——一般情况只能起一次作用,他之前及之后的代码都会运行在他指定的线程当中,直到遇到observeOn为止。
observeOn——他之后的代码运行他指定的线程中,直到遇到下一个ObserveOn为止。
至于Subscriber这个抽象类,完全可以把他当成一个单独的东西,不要在理解rxjava之中对象名称的时候去记这个东西,只要知道这个对象是继承Observer就可以了。