//创建一个Observable Observable.create(onSubscribe); create的参数是一个Observable.OnSubscribe对象 //所以第一步,就是把需要的Observable.OnSubscribe 对象创建一个出来 Observable.OnSubscribe<String> onSubscribe=new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { } }; //第二步,创建Observable可以理解为被观察者 Observable<String> observable=Observable.create(onSubscribe); //第三步,创建一个 Subscriber.可以理解为订阅者,为了方便理解.也可以理解为订阅者 Subscriber<String> subscriber=new Subscriber<String>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { } }; //第四部.就是比较关键的一步,让被观察者和订阅者之间有联系.同过subscribe建立起来联系 observable.subscribe(subscriber);//可以理解为被观察者 被一个订阅者(或者叫观察者)订阅 //从这一步下手可以看到这个方法里边有一个和很核心的代码 // RxJavaHooks.onObservableStart(observable, observable.onSubscribe).call(subscriber); //这些具体是什么暂且先不管, 往下跟我们会发现onObservableStart这个方法呢其实就是返回的方法的第二个参数 //observable.onSubscribe,而这个参数呢,.我们找到其实就是在 Observable创建的时候传进来的 onSubscribe //所以RxJavaHooks.onObservableStart(observable, observable.onSubscribe).call(subscriber); //这一句代码就相当于 onSubscribe.call(subscriber).而这个call的参数是什么呢.就是第四步传进来的subscriber //啊,所以现在也能理解第一步.onSubscribe里边的那个 subscriber是什么回事呢.在这里边可以调用 subscriber //的 onNext,OnError方法..
关于RxJava Observable 和 Subscriber之间的调用关系和原理
最新推荐文章于 2023-05-27 19:08:21 发布