How to use RxJava Interval Operator
Put Thread.sleep(1000000)
after the subscribe and you will see it working. Observable.interval
operates by default on Schedulers.computation()
so your stream is being run on a thread other than the main thread.
You have to block until the observable is consumed:
public static void main(String[] args) throws Exception {
CountDownLatch latch = new CountDownLatch(1);
Observable
.interval(1, TimeUnit.SECONDS)
.subscribe(new Subscriber<Long>() {
@Override
public void onCompleted() {
System.out.println("onCompleted");
// make sure to complete only when observable is done
latch.countDown();
}
@Override
public void onError(Throwable e) {
System.out.println("onError -> " + e.getMessage());
}
@Override
public void onNext(Long l) {
System.out.println("onNext -> " + l);
}
});
// wait for observable to complete (never in this case...)
latch.await();
}
You can add .take(10)
for example to see the observable complete.