RxJava2计时器和combineLatest

时间:2017-03-31 12:47:43

标签: android timer rx-java kotlin

RxJava2的新功能 我遇到combineLatestObservable.combineLatest( Observable.timer(5, TimeUnit.SECONDS).map { TimedData(it) }, locationDataSource.listen(), sensorDataSource.listen(). Function3 { timedData, location, sensorEvent -> Combined(timedData, location, sensorEvent) } ).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe { Log.d(TAG, "Timer -> " + it.timedData) } 例如:

的问题
timedData

正在发生的事情是CachingClientConnectionFactory只更新一次,然后它再也不会激发,所有其他可观察数据都会开始更新。 我发现https://github.com/ReactiveX/RxJava/issues/1717但它是从2014年开始的,所以我认为它已经解决了。

由于BackPressure,这仍然会发生吗?

1 个答案:

答案 0 :(得分:2)

按设计工作。 Observable.timer为单个延迟执行安排一些任务。 如果您想要定期执行某些操作,请尝试interval而不是timer

Observable.interval(0,5, TimeUnit.SECONDS);