Я использую RxJava и RxAndroid и хочу объединить два наблюдаемых, но между ними мне нужно обновить пользовательский интерфейс, поэтому я должен выполнить код в основном потоке, прежде чем достичь подписчика.
Одним из решений вместо плоского сопоставления (это общепринятый термин?) двух наблюдаемых было бы вызвать следующее наблюдаемое в подписчике сразу после обновления пользовательского интерфейса, но я чувствую, что должно быть более элегантное решение, например:
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());
Конечно, вероятно, карта не тот оператор, который мне нужно использовать здесь. Итак, есть ли оператор или лучший способ добиться этого? Или я не понимаю, как должны работать наблюдаемые?