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)來使其工作! –