我只是从应用的共享偏好中读取一个值,因此应该只有1个值发出。
SharedPrefAsync:
Observable<Boolean> getSomeValue() {
// retrieve the value asycnhronously
}
用法:
sharedPrefsAsync.getSomeValue().blockingFirst()
有效,但sharedPrefsAsync.getSomeValue().blockingSingle()
似乎使应用程序崩溃而没有错误日志
我已阅读the official documentation,但我不清楚blockingSingle
和blockingFirst
之间的差异。
如何在此处找出使用blockingSingle
的实际错误?
答案 0 :(得分:4)
RxJava的“官方文档”是其JavaDoc和Wiki页面。 ReactiveX站点是Rx实现的集合,并不像RxJava那样是最新的(另外,我们更频繁地更新文档以更精确地概念和行为)。
如果至少有一个元素,则 blockingFirst
获取第一个元素并忽略其余元素:
blockingSingle只需要一个项目,否则会引发异常:
因此,仔细检查您的getSomeValue()
链,它必须发出多个值