RxJava立即调度程序

时间:2017-10-27 06:08:15

标签: android multithreading rx-java

Activity.runOnUiThread()有这个:

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

这意味着,如果我在UI线程中它会立即执行操作,如果不是,则将操作发布到处理程序。 我正在寻找像这个功能的RxJava Scheduler。它存在吗?

1 个答案:

答案 0 :(得分:1)

是的,这很简单。

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

.observeOn(AndroidSchedulers.mainThread())之后,您可以订阅您的o​​bservable,并且回调将进入主线程。

.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());
                }
            });