android - RxJava,在链接两个可观察对象之前在观察者线程中执行代码

标签 android rx-java rx-android

我正在使用 RxJava 和 RxAndroid,我想结合两个可观察对象,但在两者之间我需要更新 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 不是我需要在这里使用的运算符。那么,是否有运营商或更好的方法来实现这一目标?还是我忽略了关于可观察对象应该如何工作的要点?

最佳答案

Rxjava 有一个 doOnNext 运算符,这正是您要找的。

关于android - RxJava,在链接两个可观察对象之前在观察者线程中执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29669353/

相关文章:

android - Monodroid - 处理 ListAdapter 行内的点击事件

android - 如何取消特定的警报?

Android ImageView 将较小的图像缩放到具有灵活高度的宽度,而不会裁剪或扭曲

rx-java - RxJava 中的 Observable.create 与 Observable.fromAsync

java - 如何将基于回调的 API 转换为基于 Observable 的 API?

android - 使用 RxAndroid MVP Retrofit 修改回调

android - 使用 Intent 将值(value)从一项 Activity 传递到另一项 Activity

android - 区分 initial call 和 next emits in flowable

android - 未调用 PublishSubject doOnSubscribe

java - 在不创建全新列表类的情况下将 Arraylist 转换为 Observable 列表?