0x01 概念
rxjava:一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。
观察者模式:又称发布-订阅模式,该模式定义了对象间的一种一对多的依赖关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。
Observable:被观察者。
Observer:观察者。
subscribe:产生订阅关系,在被观察者发出事件的时候能收到该事件。
事件:onNext、onComplete、onError。
0x02 Observable
创建方式:
create
Observable<String> o = Observable.create(new Observable.OnSubscribe<String>() {
public void call(Subscriber<? super String> t) {
t.onNext("caijiahe");
t.onCompleted();
}
});
创建一个Observable,给这个操作符传递一个Observer作为参数的函数,编写这个函数让它的行为表现为一个Observable正在调用调用Observer的onNext,onError和onCompleted方法。
from
o = Observable.from(Arrays.asList("caijiahe1", "caijiahe2"));
from操作符可以转换Future、Iterable和数组。对于Iterable和数组,产生的Observable会发射Iterable或数组的每一项数据。
just
o = Observable.just("caijiahe");
创建一个发射指定值的Observable,和from不同,from是每个都发,just如果传入的是数组,那么将数组当做一个Observable发出。
defer
o = Observable.defer(() -> Observable.just("fuck"));
直到有观察者订阅时才创建Observable,并且为每个观察者创建一个新的Observable。
interval
o = Observable.interval(1, 1, TimeUnit.SECONDS);
创建一个按固定时间间隔发射整数序列的Observable。(interval(initDelay, period, TimeUnit))