1
我正在使用RxJava2和RxJava2的新Android安装库。以下代码导致无限循环。如果我注释掉更新第二个observable中用户的行,它可以正常工作。如果我把它留在那里,第一个可观察对象的onNext方法将被重新调用。无限循环的房间+ RxJava2案例
当实体更新时,Room会重新查询表吗?如果是这样,为什么它再次发布消息在同一个流?这是预期的行为?这是图书馆的一个错误吗?
val userDao = HeyHeyApp.database.userDao();
userDao.getAll()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ listOfUsers ->
if (!listOfUsers.isEmpty()) {
HeyHeyApp.currentUser = listOfUsers.first()
HeyHeyApp.currentUser.fcmDeviceId = getDeviceId()
Single.fromCallable({
HeyHeyApp.database.userDao()
.updateUser(HeyHeyApp.currentUser)
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ _ ->
})
}
})
谢谢!我设法通过在订阅之前调用take(1)来使其工作! –