just( ) — 將一個或多個對象轉換成發射這個或這些對象的一個Observable
from( ) — 將一個Iterable, 一個Future, 或者一個數組轉換成一個Observable
repeat( ) — 創建一個重複發射指定數據或數據序列的Observable
repeatWhen( ) — 創建一個重複發射指定數據或數據序列的Observable,它依賴於另一個Observable發射的數據
create( ) — 使用一個函數從頭創建一個Observable
defer( ) — 只有當訂閱者訂閱才創建Observable;爲每個訂閱創建一個新的Observable
range( ) — 創建一個發射指定範圍的整數序列的Observable
interval( ) — 創建一個按照給定的時間間隔發射整數序列的Observable
timer( ) — 創建一個在給定的延時之後發射單個數據的Observable
empty( ) — 創建一個什麼都不做直接通知完成的Observable
error( ) — 創建一個什麼都不做直接通知錯誤的Observable
never( ) — 創建一個不發射任何數據的Observable
create
Observable.create(new Observable.OnSubscribe<Integer>() {
@Override
public void call(Subscriber<? super Integer> observer) {
try {
if (!observer.isUnsubscribed()) {
for (int i = 1; i < 5; i++) {
observer.onNext(i);
}
observer.onCompleted();
}
} catch (Exception e) {
observer.onError(e);
}
}
} ).subscribe(new Subscriber<Integer>() {
@Override
public void onNext(Integer item) {
System.out.println("Next: " + item);
}
@Override
public void onError(Throwable error) {
System.err.println("Error: " + error.getMessage());
}
@Override
public void onCompleted() {
System.out.println("Sequence complete.");
}
});
結果
Next: 1
Next: 2
Next: 3
Next: 4
Sequence complete.
just:(2-9個參數)
Observable.just(1, 2, 3)
.subscribe(new Subscriber<Integer>() {
@Override
public void onNext(Integer item) {
System.out.println("Next: " + item);
}
@Override
public void onError(Throwable error) {
System.err.println("Error: " + error.getMessage());
}
@Override
public void onCompleted() {
System.out.println("Sequence complete.");
}
});
結果
Next: 1
Next: 2
Next: 3
Sequence complete.
from
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
Observable.just(list).subscribe(new Subscriber<List<String>>() {
@Override public void onCompleted() {
}
@Override public void onError(Throwable e) {
}
@Override public void onNext(List<String> strings) {
}
});
Observable.from(list).subscribe(new Subscriber<String>() {
@Override public void onCompleted() {
Log.e("--------onCompleted ", "onCompleted");
}
@Override public void onError(Throwable e) {
}
@Override public void onNext(String s) {
Log.e("--------onNext ", "s : " + s);
}
});
結果
04-22 17:45:22.092 12883-12883/com.fernandocejas.android10.sample.presentation E/--------onNext﹕ s : a
04-22 17:45:22.092 12883-12883/com.fernandocejas.android10.sample.presentation E/--------onNext﹕ s : b
04-22 17:45:22.092 12883-12883/com.fernandocejas.android10.sample.presentation E/--------onNext﹕ s : c
04-22 17:45:22.092 12883-12883/com.fernandocejas.android10.sample.presentation E/--------onCompleted﹕ onCompleted
create( )