RxJava基础

Posted by CaiJiahe on October 13, 2017

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))