Я связал свой адаптер с комнатными-дБ Flowables
db.myDao().loadByTrackId(tracksId)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe({ comments ->
Timber.d("setDataAD " + comments.size())
adapter.setData(comments.toMutableList())
}, ...
)
откуда-то я обновляю базу данных комнат
db.myDao().updateComments(pair.first.data, pair.second.data)
dao:
@Transaction
fun updateComments(commentOrigin: List<Comment>, commentNew: List<Comment>) {
delete(commentOrigin)
insertAll(commentNew)
}
@Delete
fun delete(comments: List<Comment>)
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertAll(comments: List<Comment>)
Когда сейчас3 удаляются, а 3 вставляются, и, используя метод @Transaction, я предполагал одно событие с Flowable, но я измерил фейерверк Flowables
setDataAD 0
setDataAD 3
setDataAD 3
setDataAD 0
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 0
setDataAD 3
setDataAD 3
setDataAD 0
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 3
setDataAD 3
Как можно решить, чтобы получить только одинсобытие / текучая?Или другими словами: как я могу предотвратить некоторые обновления БД, отраженные Flowables