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

时间:2017-09-04 08:05:03

标签: java android rx-java rx-java2

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

提前感谢!

1 个答案:

答案 0 :(得分:6)

您正在寻找buffer运营商:

  

返回一个Observable,它发出从源Observable收集的项目的缓冲区。生成的Observable发出连接的,非重叠的缓冲区,每个缓冲区都由timespan参数指定。enter image description here

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

 dbObservable
     .buffer(100, TimeUnit.MILLISECONDS)
     ... // here is your Lists