RxJava学习笔记
// 示例
Observable
.create((Observable.OnSubscribe<Integer>) subscriber -> { // 创建Observable对象,接收一个OnSubscribe对象
subscriber.onNext(num);
subscriber.onCompleted();
})
.subscribeOn(Schedulers.newThread())
.map(String::valueOf)
.subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String s) {
System.out.println(s);
}
});
家族成员
类/对象
- Observable
- OnSubscribe
- 简单理解
- 深入理解
- 有suscriber订阅后通过onSubscribe.call()执行,类似策略模式(在学习过策略模式后我会无脑地认为所有对行为类地封装都是策略模式…)
- Func1
- 简单理解
- 类似于Runnable类,里面只有一个方法,不过比Runnable多了方法参数、泛型和返回值
- 深入理解
- 去看Func和Aciton的源码, 看不出来别回来…(提示:看返回值,看泛型类型和call方法接收的参数数量)
- subscriber
- 简单理解
- 订阅者,继承Observer,内部封装了onStart()等特有方法,其他像onNext()、onComplete()等方法继承自Observer,这些方法用于在观察者(Observable)中回调
- 深入理解
方法
- Observable.create(onSubscribe)
- 简单理解
- 等同于new Observable(onSubscribe),构造函数接收一个OnSubscribe对象
- 深入理解
- Observable构造函数用protect保护起来,无法通过new创建,只有通过静态方法如create()获取对象,接收一个OnSubscribe对象,赋值给成员变量OnSubscribe onSubscribe持有,在订阅者订阅后通过onSubscribe.call()进行回调
- subscribeOn(Scheduler)
- map(Func1