配置环境

只需要在项目中的build.gradle中加入
compile 'io.reactivex:rxjava:1.0.14'
compile 'io.reactivex:rxandroid:1.0.1'
这两行代码就行。

开始理解Rxjava

Rxjava采用的是观察者模式,由于我之前知道回调模式,而且我觉得回调模式是比较特殊的观察者模式,它只有一个观察者,所以我拿回调模式进行类比,首先,对于回调模式而言,它一般是暴露一个方法和接口,这里我就直接拿我自己写的一个回调机制来做比较,代码如下:
被观察者类:
Github

订阅:
Github
开始类比,由上面的代码知道,被观察者是定义了发生怎样的事件和何时发生,看onBindViewHolder(参数)这个方法,这就类比于Github
这个代码,这里的onBindViewHolder(参数)方法和rx.Observable.OnSubscribe<Bitmap>抽象类的作用是一样的,就是设置了发生了什么事以及何时发生(记住是发生以及何时发生,而不是处理了),然后再加上Observable observable = Observable.create(OnSubscribe类型参数)就是创建了一个被观察者,这里需要记住的就是发生怎样的事件和何时发生是在被观察者中的。然后就是订阅这个,这里完成了两个过程,首先是创建观察者,就是:
Github
这其实就是定义(不是声明)了接口中的两个方法,就是建立了观察者,同时通过myRecyclerViewAdapter.setOnItemClickListener(参数)来订阅,建立观察者就是:
Github
整个过程类比Rxjava就是:
Github
这里就是建立了观察者,同时订阅了,建立观察者就是
Github
订阅就是subscribe(参数)完成,这里需要记住的就是定义事件是发生在观察者中,然后通过subscribe(参数)来订阅。observable,observer,subscribe,OnSubscribe的关系可以用下图表示:
Github