Jam*_*ing 34 java android rx-android
所以我试图创建一个定期发射的可观察物,但由于某些我无法弄清楚的原因,它只发射一次.谁能看到我做错了什么?
Observable<Long> observable = Observable.timer(delay, TimeUnit.SECONDS, Schedulers.io());
subscription = observable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Long>() {
@Override
public void call(Long aLong) {
searchByStockHelper.requestRemoteSearchByStock();
}
});
Run Code Online (Sandbox Code Playgroud)
目前延迟设置为2
Tan*_*.7x 51
计时器操作员的文档说明了这一点:
创建一个在给定延迟后发出特定项目的Observable
因此,您所观察到的行为是预期的 - timer()在延迟之后仅发出一个项目.
另一方面,间隔算子将发出以给定间隔隔开的项目.
例如,此Observable将每秒发出一个项目:
Observable.interval(1, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
Jac*_*per 17
我知道话题很老但也许对未来的访客来说.(5分钟倒数计时器)
Disposable timerDisposable = Observable.interval(1,TimeUnit.SECONDS, Schedulers.io())
.take(300)
.map(v -> 300 - v)
.subscribe(
onNext -> {
//on every second pass trigger
},
onError -> {
//do on error
},
() -> {
//do on complete
},
onSubscribe -> {
//do once on subscription
});
Run Code Online (Sandbox Code Playgroud)