原始碼總結:
observabel 通過create方法。將observableonsubscribe物件傳遞給自己。
通過subscribe方法。建立
observableemitter發射器物件。發射器裡又封裝了observer。發射器又作為引數傳遞
給observableonsubscribe物件的
subscribe
(observableemittere)方法。當發射器呼叫onnext方法時。
會呼叫封裝在自己內部的observer的onnext方法;observer將customer封裝在自己內部;observer呼叫onnext方法時
會呼叫customer的accept方法;
一、**的呼叫//建立被觀察者
observable.create(newobservableonsubscribe()}
//通過subscribe連線被觀察著和觀察者
}).subscribe(//建立觀察者
newconsumer()});
二、分析create方法和subscribe方法1 create方法返回newobservablecreate<t>(source);
public staticobservable create(observableonsubscribe source)
分析observablecreate
source即是一開始建立的這個物件注意紅色字型處。parent作為引數傳遞給source。即e = parent;而parent又封裝了observer.
new observableonsubscribe()}
將source傳遞給observablecreate
在subscribeactual方法裡將observer 和source建立聯絡
publicobservablecreate(observableonsubscribe source)@override
protected voidsubscribeactual(observer<?supert> observer)
catch(throwable ex) }//這個方法為parent的方法。所有parent.onnext(),即是呼叫oberver.onnext;customer又被封裝在
lambdaobserver裡。
lambdaobserver.onnext會呼叫customer的accept;
@overridepublic voidonnext(t t)
if(!isdisposed())
}
public finaldisposable subscribe(consumer<?supert> onnext, consumer<?superthrowable> onerror,action oncomplete, consumer<?superdisposable> onsubscribe)
public final voidsubscribe(observer<?supert> observer)catch(nullpointerexception e)catch(throwable e)}
Rxjava2的簡單實用
第一種方式實現觀察者和被觀察者的建立和建立聯絡 1 建立被觀察者 建立被觀察者 傳送資料 observable observable observable.create new observableonsubscribe 2 建立觀察者 建立觀察者 接受資料 io.reactivex.observe...
RxJava2實現執行緒切換
被觀察者 observable 觀察者 observer 訂閱 subscribe 1 建立被觀察者 observable observable observable.create new observableonsubscribe 2 建立觀察者 observer observer new obs...
RxJava2簡單使用三(執行緒排程)
之前我也用到過執行緒排程,但是沒有仔細講這個問題,我這裡作為新手還是解釋一下 執行緒排程一 基本配置 subscribeon schedulers.newthread 將被觀察者設定在乙個新的執行緒來執行 observeon androidschedulers.mainthread 將觀察者設定在主...