超时不结束流
Timeout without ending stream
我正在使用 Android-ReactiveLocation 库。我想在最后 X 分钟内没有收到任何新的位置更新时显示一些警告消息。新位置应重置超时。
如何在不使用 RxJava 结束流的情况下实现这种超时?
您可以发布源代码并使用超时重试来继续收听源代码:
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);
我正在使用 Android-ReactiveLocation 库。我想在最后 X 分钟内没有收到任何新的位置更新时显示一些警告消息。新位置应重置超时。
如何在不使用 RxJava 结束流的情况下实现这种超时?
您可以发布源代码并使用超时重试来继续收听源代码:
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);