如何在后台线程中执行此代码?
.subscribeOn(Schedulers.computation())
onNext()
{
touchEverythingInTheUiThreadFromBackgroundThread();
}发布于 2016-06-05 05:31:14
如果您希望确保您的.doOnNext()在指定的调度程序上执行,则将您的.subscribeOn()更改为.observeOn()。.observeOn()直观地决定了之后的所有事情都使用哪个调度器。
.subscribeOn()仅影响用于运行可观察对象创建的onSubscribe()方法的调度器。以后会发生什么很大程度上取决于你订阅的内容,或者正如@akarnokd所说的:事件的来源是什么。假设项目将在.subscribeOn()中指定的调度器上发出是不安全的。实际上,至少有几个例子表明这些假设不成立。
发布于 2016-06-03 21:36:58
使用
Observable.fromCallable(() -> Thread.currentThread().getName())
.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(name -> Timber.d("Worker thread: %s, Handle thread: %s", name, Thread.currentThread().getName()));https://stackoverflow.com/questions/37615253
复制相似问题