android - RxJava 类立即调度程序

标签 android multithreading rx-java

Activity.runOnUiThread() 有这个:

if (Thread.currentThread() != mUiThread) {
    mHandler.post(action);
} else {
    action.run();
}

这意味着,如果我在 UI 线程中,它会立即运行操作,如果我不在,它会向处理程序发布操作。 我正在寻找类似此功能的 RxJava 调度程序。存在吗?

最佳答案

是的,很简单。

getSomeObservable().observeOn(AndroidSchedulers.mainThread())

.observeOn(AndroidSchedulers.mainThread()) 之后,您可以订阅您的可观察对象,回调将进入主线程。

.subscribe(new Subscriber<Object>() {
                @Override
                public void onCompleted() {
                    Log.i(TAG,Thread.currentThread().getName());
                }

                @Override
                public void onError(Throwable e) {
                    Log.i(TAG,Thread.currentThread().getName());
                }

                @Override
                public void onNext(Object o) {
                    Log.i(TAG,Thread.currentThread().getName());
                }
            });

关于android - RxJava 类立即调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46968498/

相关文章:

java - rxJava 中的开销

android - 如何从 Assets 中加载所有图像?

java - 如果可运行/可调用访问外部类变量,是否存在任何内存可见性问题?

kotlin - 是否有与 RxJava 的 onDispose 等效的 Kotlin Coroutines Channel?

python 3.2全局变量在线程中时不更新

java - 同步块(synchronized block)中可以放入什么?

java - 将 Spring Security 与线程池结合使用会导致重用线程时出现竞争条件

java - 如何在代码中确定 Android 设备的纹理内存限制?

android - 如何在 Android 中以编程方式停止使用电子邮件输入类型的 edittext 自动建议

java - 为什么我已经注册了警报却收不到接近警报?