6
我在Android上使用RxJava和Retrofit 2.0進行網絡請求。RxJava onCompleted和onTerminate在主線程上
當我創造了可觀的,我添加以下代碼行:
observable = observable
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
然後,如果我添加一個:
observable = observable.doOnTerminate(new Action0() {
@Override
public void call() {
Log.d("OBS", "[" + Thread.currentThread().getName() + "] onTerminate");
}
});
或爲doOnError
和doOnCompleted
回調類似於執行上IO線程,而doOnNext
在主線程上執行。
但是,我真正想要的是所有回調都轉到主線程,但執行應該停留在IO線程上。
有沒有一個優雅的解決方案,而不必手動包裝我的實現與塊將內容發佈到主線程?
使用事件總線和張貼到UI線程? –