【发布时间】:2016-02-01 20:25:17
【问题描述】:
我在 Android 上使用 RxJava 和 Retrofit 2.0 来处理网络请求。
当我创建 observable 时,我添加以下内容:
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 线程?
标签: android retrofit rx-java rx-android