Rxjava創建型操作符主要有以下幾種
create
just
formArray
empty
range
是用來創建Observable(被觀察者)的
just操作符的使用
Observable.just("A","B")//內部會先發送A再發送B
.subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
Log.e(TAG,s);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
先會輸出A 再輸出B 自動發送事件
fromArray操作符使用
String[] strings = new String[]{"a","b","c"};
Observable.fromArray(strings)
.subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
最後會輸了a b c 有些人用來做數據的遍歷
empty操作符
Observable.empty()//內部一定會調用onComplete
//上游無法指定類型,這裏只能是object
.subscribe(new Observer<Object>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Object o) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
Log.e(TAG,"只有這裏能接收");
}
});
//簡化版本
Observable.empty()
.subscribe(new Consumer<Object>() {
@Override
public void accept(Object o) throws Exception {
Log.e(TAG,"這裏是接收不到的");
}
});
只會發送onCompelete事件,只有下游的onCompelete才能接收
range操作符
Observable.range(4, 5)
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Integer integer) {
Log.e(TAG, integer + "這裏會執行上面傳的5次")
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
相當於
for (int i = 4; i < 9; i++) {
}