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

leogyy
17 声望2 粉丝

Android developer 爱技术, 爱开源, 爱赚钱。互联网中毒症患者,Want to make a good app!