创建操作符
1 interval
创建一个固定时间间隔发射横竖序列的Onservable,相当于定时器,如下所示,每隔3秒就会打印Log
private void intervalOb() {
Observable.interval(3, TimeUnit.SECONDS)
.subscribe(new Action1<Long>() {
@Override
public void call(Long aLong) {
Log.e(TAG, "interval:" + aLong.intValue());
}
});
}
打印log如下
2 range
创建制定范围的证书序列的Observable,可以拿来替代for循环,发射一个范围内的有序整数列,第一参数是起始值,并且不小于0:第二个参数为整数序列的个数。
private void rangeOb(){
Observable.range(5,5)//起始是5 递增5次 输出为5~9
.subscribe(new Action1<Integer>() {
@Override
public void call(Integer integer) {
Log.e(TAG, "range:" + integer.intValue());
}
});
}
3 repeat
创建一个N次重复发射特定数据的Observable,如下 repeat为重复2次
private void repeatOb(){
Observable.range(0,5)
.repeat(2)//重复次数,现在是重复两次
.subscribe(new Action1<Integer>() {
@Override
public void call(Integer integer) {
Log.e(TAG, "repeat:" + integer.intValue());
}
});
}
4 timer
在第N秒后发射制定数据并Complete
private void timerOb() {
Observable.timer(2, TimeUnit.SECONDS)//设置时间单位
.subscribe(new Observer<Long>() {
@Override
public void onCompleted() {
Log.e(TAG, "complete:");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Long aLong) {
Log.e(TAG, "interval:" + aLong.intValue());
}
});
}