RxJava 2:在一段时间后发出收集的项目列表

Ole*_*iov 1 java android rx-java rx-java2

我有一个Observable,当它被添加到db时,它正在监听数据库并发出项目.当我订阅这个observable时,它会逐个在db中快速发出已存储的项目.我的问题是我可以创建observable来收集以一定间隔(例如100毫秒)发出的项目到列表并发出(或返回一些函数,如doOnNext)整个列表和单独的项目,如果有更大的发射间隔?

预先感谢!

Mak*_*dov 6

您正在寻找缓冲区运算符:

返回一个Observable,它发出从源Observable收集的项的缓冲区.生成的Observable发出连接的非重叠缓冲区,每个缓冲区由timespan参数指定的固定持续时间.在此输入图像描述

每100毫秒发出收集的物品:

 dbObservable
     .buffer(100, TimeUnit.MILLISECONDS)
     ... // here is your Lists
Run Code Online (Sandbox Code Playgroud)

  • 是的,我之前正在研究这种方法,但我的项目中的逻辑已经改变,我不再需要回答这个问题了.感谢您的时间和精力! (2认同)