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( )