我想创建一个每x秒发出一次的observable。这个x可能是一个变量,取决于某些条件。
现在我有一些事情会给我发送一个4秒的事件。
Observable.interval(4, TimeUnit.SECONDS)
.takeUntil(new Func1<Long, Boolean>() {
@Override public Boolean call(Long aLong) {
return !showNextText;
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.newThread())
.subscribe(new Action1<Object>() {
@Override public void call(Object o) {
}
}, new Action1<Throwable>() {
@Override public void call(Throwable throwable) {
}
}, new Action0() {
@Override public void call() {
}
});
答案 0 :(得分:0)
使用concatMap
和timer
。
此示例将在1秒后发出,然后在2秒后发出,然后在3秒后发出:
Observable.just(1, 2, 3)
.concatMap(n -> Observable.timer(n, TimeUnit.SECONDS))
.doOnNext(System.out::println)
.toBlocking().subscribe();