以固定的时间间隔不断发射数据。
测试:
@Test
public void testSimple(){
Observable.interval(1, TimeUnit.SECONDS).subscribe(new Action1<Long>() {
@Override
public void call(Long aLong) {
System.out.println("aLong = " + aLong);
}
});
for (;;){
}
}
输出
aLong = 0
aLong = 1
aLong = 2
...
...
aLong = 7
aLong = 8
...
...
interva有四个重载方法:
1
public static Observable<Long> interval(long interval, TimeUnit unit)
2
public static Observable<Long> interval(long initialDelay, long period, TimeUnit unit)
3
public static Observable<Long> interval(long interval, TimeUnit unit, Scheduler scheduler)
4
public static Observable<Long> interval(long initialDelay, long period, TimeUnit unit, Scheduler scheduler)
所有重载方法最终都是调用的第4个方法,这个方法的参数的意义和默认值如下:
* @param initialDelay 发射第一个数据的延迟时间,默认取period
* @param period 发射周期
* @param unit 发射周期的时间单位
* @param scheduler 用于发射数据的线程,默认使用 Schedulers.computation()
public static Observable<Long> interval(long initialDelay, long period, TimeUnit unit, Scheduler scheduler)