2016年10月17日更新:
RxJava实战技巧大全
2016年8月16日更新:
rxjava操作符
以下两篇是实践运用篇,看完这两篇就够了:
配合使用的插件:Rxlifecycle,RxBinding
Rxlifecycle使用详解,解决RxJava内存泄露问题
详细解析 RxAndroid 的使用方式
以下是基础篇:
Rxjava的api文档和ReactiveX的中文文档包含了Rxjava的所有用法和文档解释,非常有用。
1。要想看懂理清响应式编程的核心,必须理解以下三个概念的区别。
Observable, Observer, Subscriber
Observable 可观察对象,被观察的数据源对象,在Rx中定义为更强大的Iterable,在观察者模式中是被观察的对象,一旦数据产生或发生变化,会通过某种方式通知观察者或订阅者
Observer 观察者对象,观察监听Observable变化的对象,监听Observable发射的数据并做出响应,Subscriber是它的一个特殊实现
- Subscriber 订阅者,Observer观察者的一个特殊实现,比Observer附加了订阅和取消订阅的动作功能,文档上如下描述,
public abstract class Subscriber
extends java.lang.Object
implements Observer, Subscription
Provides a mechanism for receiving push-based notifications from Observables, and permits manual unsubscribing from these Observables.
After a Subscriber calls an Observable’s subscribe method, the Observable calls the Subscriber’s Observer.onNext(T) method to emit items. A well-behaved Observable will call a Subscriber’s Observer.onCompleted() method exactly once or the Subscriber’s Observer.onError(java.lang.Throwable) method exactly once.
它继承了Observer和Subscription两个接口,我们来看这两个接口的代码,
public interface Observer<T> {
void onCompleted();
void onError(Throwable e);
void onNext(T t);//接收Observable发射的数据
}
public interface Subscription {
void unsubscribe();//取消订阅
boolean isUnsubscribed();//是否订阅
}
2。 Suscribe
了解了主要的生产者和消费者(即被观察者/广播者和观察者/订阅者),我们再来看讲他们绑定在一起的操作符Suscribe.
Subscribe操作符是连接观察者和Observable的胶水。一个观察者要想看到Observable发射的数据项,或者想要从Observable获取错误和完成通知,它首先必须使用这个操作符订阅那个Observable,将它们绑定在一起。
Subscribe操作符的一般实现可能会接受一到三个方法(然后由观察者组合它们),或者接受一个实现了包含这三个方法的接口的对象(有时叫做Observer或Subscriber),这三个方法即:
void onCompleted();
void onError(Throwable e);
void onNext(T t);
3。Observable的创建
Observable的create:将Observer或Subcriber的三个方法进行组织,其他just,from等操作符都是create创建的对三个方法的不同组织。