RxJava timer that repeats forever, and can be restarted and stopped at anytime
KOTLIN way
Observable.timer(5000, TimeUnit.MILLISECONDS)
.repeat() //to perform your task every 5 seconds
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
Log.d("ComingHere", "Inside_Timer")
}
timer operator emits an item after a specified delay then completes. I think you looking for the interval operator.
Subscription subscription = Observable.interval(1000, 5000, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Long>() {
public void call(Long aLong) {
// here is the task that should repeat
}
});
if you want to stop it you just call unsubscribe on the subscription:
subscription.unsubscribe()
Call Observable.repeat()
method to repeat
Disposable disposable = Observable.timer(3000, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.newThread())
.repeat()
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
If you want to stop it call disposable.dispose()