我正在尝试从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线程中将要发射的所有发射项目排队。

07-27 13:59