【发布时间】:2015-04-16 08:31:16
【问题描述】:
我正在使用 RxJava 和 RxAndroid,我想组合两个 observable,但在这两者之间我需要更新 UI,所以我必须在 到达订阅者之前在主线程中执行代码。
一个解决方案,而不是平面映射(这是一个公认的术语吗?)两个可观察对象,是在更新 UI 后立即在订阅者中调用下一个可观察对象,但我觉得应该有一个更优雅的解决方案,例如:
myObservable
.map(new Func1<Object, Object>() {
@Override
public Object call(Object object) {
/* do stuff on the main thread */
return object;
}
})
.flatMap(new Func1<Object, Observable<OtherObject>>() {
@Override
public Observable<OtherObject> call(Object o) {
return new MyOtherObservable(o);
}
})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
当然,可能 map 不是我这里需要使用的运算符。那么,是否有运营商或更好的方法来实现这一目标?还是我错过了关于 observables 应该如何工作的要点?
【问题讨论】:
标签: android rx-java rx-android