Never
创建一个不发射数据也不终止的Observable
Observable.<String>never().subscribe(new Observer<String>() {
@Override
public void onNext(String s) {
log("onNext:" + s);
}
@Override
public void onCompleted() {
log("onCompleted");
}
@Override
public void onError(Throwable e) {
log("onError:" + e.getMessage());
}
});
可以看到哪个on*函数都没有执行
我们看下never函数
public static <T> Observable<T> never() {
return NeverObservableHolder.instance();
}
public enum NeverObservableHolder implements OnSubscribe<Object> {
INSTANCE
;
/** The singleton instance. */
static final Observable<Object> NEVER = Observable.create(INSTANCE);
/**
* Returns a type-corrected singleton instance of the never Observable.
* @param <T> the value type
* @return a type-corrected singleton instance of the never Observable.
*/
@SuppressWarnings("unchecked")
public static <T> Observable<T> instance() {
return (Observable<T>)NEVER;
}
@Override
public void call(Subscriber<? super Object> child) {
// deliberately no op
}
}
call函数什么也没做