RxJava2實現執行緒切換

2021-09-24 17:54:38 字數 1817 閱讀 1088

被觀察者(observable)、觀察者(observer)、訂閱(subscribe)。

1、建立被觀察者:

observable observable = observable.create(new observableonsubscribe()

});2、建立觀察者:

observer observer = new observer()

@override

public void onnext(integer o) {}

@override

public void onerror(throwable e) {}

@override

public void oncomplete() {}

};3、建立訂閱關係:

observable.subscribe(observer);

observable.create((observableonsubscribe) emitter -> );

observable.just(0);

observable.fromiterable(arrays.aslist(0,1, 2));

observer observer = new observer()

@override

public void onnext(integer o) {}

@override

public void onerror(throwable e) {}

@override

public void oncomplete() {}

};consumerconsumer = new consumer()

};disposable subscribe();

void subscribe(observer<? super t> observer);

disposable subscribe(consumer<? super t> onnext, consumer<? super throwable> onerror,action oncomplete, consumer<? super disposable> onsubscribe);

> e subscribewith(e observer);

subscribeon():指定observable被觀察者在哪個執行緒執行。要注意的是,如果多次呼叫此方法,只有第一次有效。

observeon():指定observe觀察者在哪個執行緒中執行。多次指定觀察者接收執行緒是可以的,每呼叫一次observeron(),下游的執行緒就會切換一次。

observable.just(0)

.subscribeon(schedulers.io())

.observeon(androidschedulers.mainthread())

.map(integer -> )

.observeon(schedulers.io())

.map(integer -> )

.observeon(schedulers.newthread())

.map(integer -> )

.observeon(schedulers.computation())

.map(integer -> )

.observeon(schedulers.single())

.map(integer -> )

.observeon(androidschedulers.mainthread())

.map(integer -> )

.subscribe();

RxJava2原始碼解析

原始碼總結 observabel 通過create方法。將observableonsubscribe物件傳遞給自己。通過subscribe方法。建立 observableemitter發射器物件。發射器裡又封裝了observer。發射器又作為引數傳遞 給observableonsubscribe物件...

Rxjava2的簡單實用

第一種方式實現觀察者和被觀察者的建立和建立聯絡 1 建立被觀察者 建立被觀察者 傳送資料 observable observable observable.create new observableonsubscribe 2 建立觀察者 建立觀察者 接受資料 io.reactivex.observe...

RxJava2簡單使用三(執行緒排程)

之前我也用到過執行緒排程,但是沒有仔細講這個問題,我這裡作為新手還是解釋一下 執行緒排程一 基本配置 subscribeon schedulers.newthread 將被觀察者設定在乙個新的執行緒來執行 observeon androidschedulers.mainthread 將觀察者設定在主...