没有结束流的超时

时间:2015-06-29 14:31:33

标签: android rx-java

我正在使用Android-ReactiveLocation库。我想在最后X分钟显示一些警告信息,我没有得到任何新的位置更新。新位置应重置超时。

如何在不使用RxJava结束流的情况下实现此类超时?

1 个答案:

答案 0 :(得分:2)

您可以发布源并使用重试超时来继续收听源:

Observable<Long> source =
    Observable.just(100L, 200L, 500L, 1000L, 5000L, 5500L, 6000L)
    .flatMap(v -> Observable.timer(v, TimeUnit.MILLISECONDS).map(a -> v));

source.publish(co -> co.timeout(750, TimeUnit.MILLISECONDS)
        .doOnError(System.out::println)
        .retry()
).toBlocking().forEach(System.out::println);