So I am trying to create an observable which fires on a regular basis, but for some reason which I cannot figure out, it only fires once. Can anyone see what I am doing wrong?
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();
}
});
currently delay is set to 2
The documentation for the timer operator says this:
Create an Observable that emits a particular item after a given delay
Thus the behavior you are observing is expected- timer()
emits just a single item after a delay.
The interval operator, on the other hand, will emit items spaced out with a given interval.
For example, this Observable will emit an item every second:
Observable.interval(1, TimeUnit.SECONDS);