Android进阶学习RxJava(二)Observer升级版S
2020-10-16 本文已影响0人
郝大富
先回忆上文一下的Observer
Observer有三个方法
- onCompleted
- onError
- onNext
Subscriber 翻译过来是订阅者
其实是Observer的升级版,加了一个onStart方法,改改名字
- 开始编故事
小明(Subscriber)是个宅男,喜欢在家里读杂志
- 所以小明订了一份花花公子杂志
先介绍宅男小明(Subscriber)
- 其他三个方法介绍在上一篇文章里有,不明所以的可以往上翻,看第一篇小明的故事
Subscriber <String> subscriber=new Subscriber<String>() {
@Override // 新方法(可选择性的重写)小明喜欢看杂志前把纸拿到桌旁
public void onStart() {
super.onStart();
}
@Override
public void onCompleted() {
LogUtils.e("Completed");
}
@Override
public void onError(Throwable e) {
LogUtils.e("Error");
}
@Override
public void onNext(String s) {
LogUtils.e(s);
}
};
在介绍未来送报员(Observable)
- 送报员有好多形态,上一篇使用的是原始形态
- 使用Observable.Create()创建的Observable
- 送报员的其他形态
- Observable.just()创建被观察者
- Observable.from()创建被观察者
OK 一个一个来
- 送报学会了特技,发射模式,目标,小明的窗户
just
- just 原样发射 不带包装,杂志直接丢进小明窗户
- 每个参数发一遍,参数最多为9个,可为null
Observable observable = Observable.just("Hello", "World");
from
- 用来发送一个数组,先上源码
public static <T> Observable<T> from(T[] array) {
int n = array.length;
if (n == 0) {
return empty();
} else
if (n == 1) {
return just(array[0]);
}
return create(new OnSubscribeFromArray<T>(array));
}
- 可以理解为,送报员开着火车送报,整车干到小明家
String [] words = {"Hello", "World"};
Observable observable = Observable.from(words);
最后,最重要的一步
- 两个一定要关联起来,才会有效
- 理解为,小明必须付钱,才能看到花花公子
observable.subscribe(subscriber);
总结
- 发简单小数据,用just简单粗暴
- 数组类大量数据,用from