//創(chuàng)建一個(gè)Observable Observable.create(onSubscribe); create的參數(shù)是一個(gè)Observable.OnSubscribe對(duì)象//所以第一步,就是把需要的Observable.OnSubscribe 對(duì)象創(chuàng)建一個(gè)出來 Observable.OnSubscribe<String> onSubscribe=new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { }};//第二步,創(chuàng)建Observable可以理解為被觀察者Observable<String> observable=Observable.create(onSubscribe);//第三步,創(chuàng)建一個(gè) Subscriber.可以理解為訂閱者,為了方便理解.也可以理解為訂閱者Subscriber<String> subscriber=new Subscriber<String>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { }};//第四部.就是比較關(guān)鍵的一步,讓被觀察者和訂閱者之間有聯(lián)系.同過subscribe建立起來聯(lián)系observable.subscribe(subscriber);//可以理解為被觀察者 被一個(gè)訂閱者(或者叫觀察者)訂閱//從這一步下手可以看到這個(gè)方法里邊有一個(gè)和很核心的代碼// RxjavaHooks.onObservableStart(observable, observable.onSubscribe).call(subscriber);//這些具體是什么暫且先不管, 往下跟我們會(huì)發(fā)現(xiàn)onObservableStart這個(gè)方法呢其實(shí)就是返回的方法的第二個(gè)參數(shù)//observable.onSubscribe,而這個(gè)參數(shù)呢,.我們找到其實(shí)就是在 Observable創(chuàng)建的時(shí)候傳進(jìn)來的 onSubscribe//所以RxJavaHooks.onObservableStart(observable, observable.onSubscribe).call(subscriber);//這一句代碼就相當(dāng)于 onSubscribe.call(subscriber).而這個(gè)call的參數(shù)是什么呢.就是第四步傳進(jìn)來的subscriber//啊,所以現(xiàn)在也能理解第一步.onSubscribe里邊的那個(gè) subscriber是什么回事呢.在這里邊可以調(diào)用 subscriber//的 onNext,OnError方法..
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注