準備工作 http://www.reibang.com/p/1ac62d93b962
Observer的創(chuàng)建
static Observer<Integer> observer = new Observer<Integer>() {
@Override
public void onCompleted() {
System.out.println("onCompleted");
}
@Override
public void onError(Throwable e) {
System.out.println("onError");
}
@Override
public void onNext(Integer integer) {
System.out.println(integer);
}};
Observable的創(chuàng)建
Observable.create(), Observable.just(),Observable.from();
create方法需要一個Observable.OnSubscribe對象
just方法是將一個(或多個供搀,最多9個)普通對象轉(zhuǎn)換成一個Observable對象
from方法是將一個列表轉(zhuǎn)換成一個Observable對象
用代碼說話吧
create:
static Observable.OnSubscribe<Integer> onsubscribe = new Observable.OnSubscribe<Integer>() {
@Override
public void call(Subscriber<? super Integer> subscriber) {
subscriber.onNext(1);
subscriber.onError(new Exception());
subscriber.onCompleted();
subscriber.onError(new Exception());
subscriber.onNext(2);
}};
- onCompleted和onError方法不會同時被調(diào)用,兩者都會結(jié)束鏈式調(diào)用
-
onCompleted或onError方法之后的方法將不會被調(diào)用
測試:
static void create(){
Observable.create(onSubscribe).subscribe(integerObserver);
}
public static void main(String args[]) {
create();
}
just:
just方法最多可以接受10個參數(shù)
static void just(){
Observable.just(1).subscribe(integerObserver);
}
static void just2(){
Observable.just(1,2).subscribe(integerObserver);
}
- 如果是不同的類型just就會自動向上轉(zhuǎn)型胎源,轉(zhuǎn)型失敗將不能通過編譯
from:
from是將一集合(from還有其它的創(chuàng)建方法屿脐,這里我只練習集合)轉(zhuǎn)化成一個Observable
static void from(){
Integer arr[] = {1,2,3,4 };
Observable.from(arr).subscribe(integerObserver);
}
static void from2(){
Integer arr[] = {1,2,3,4 };
Observable.from(Arrays.asList(arr)).subscribe(integerObserver);
}