我正在尝试从Observable(BehaviorSubject.create())获取值
当我运行locationObservable.subscribe {}时,我会在几秒钟内收到结果。但是用
try {
it.locationObservable
.timeout(10, TimeUnit.SECONDS)
.blockingFirst()
} catch (e: Exception) {
}
无论超时与否,都不会发生任何事情。我只是收到“ java.util.concurrent.TimeoutException:源在10秒钟内未发出事件信号并已终止”。我试过blockingFirst(),blockingLast()和blockingForEach()。我是否以某种方式阻塞了可以为我提供价值的线程?
编辑:从主线程移动它后,它开始工作。谢谢大家的投入。
最佳答案
操作员.observeOn(Schedulers.io())
将在Android应用程序的IO线程中将要发射的所有发射项目排队。