RxJava2 有点新
我在使用 timer
和 combineLatest
时遇到问题,例如:
Observable.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
只被更新一次,然后它再也不会触发,所有其他可观察对象都开始更新。
我找到了 https://github.com/ReactiveX/RxJava/issues/1717但它是从 2014 年开始的,所以我认为它已经解决了。
由于 BackPressure,这种情况还会发生吗?
最佳答案
按设计工作。 Observable.timer
为单个延迟执行安排一些任务。 如果你想定期执行某些事情,请尝试使用 interval
而不是 timer
。
Observable.interval(0,5, TimeUnit.SECONDS);
关于android - RxJava2 定时器和 combineLatest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43141083/