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线程? –