我想使用RxJava (实际上是RxJava2)定期发送网络(RxJava2 )请求。第一次尝试看起来或多或少是这样的(从这个来源改编):
Observable.interval(5, TimeUnit.SECONDS, Schedulers.io())
.map(tick -> sendNetworkRequest())这将每5秒调用一次sendNetworkRequest。
但是,如果sendNetworkRequest()需要一段时间才能完成(例如,在一个缓慢的网络上,或者如果有多个重试)这些请求将重叠。
我要做的是确保请求之间有5秒的间隔,即从上一个请求结束到下一个请求的开始。
如何用RxJava实现这一点?
发布于 2018-08-02 15:48:24
使用repeatWhen
Observable.fromCallable(sendNetworkRequest())
.repeatWhen(observable -> observable.delay(5, TimeUnit.SECONDS));https://stackoverflow.com/questions/51653054
复制相似问题