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函数什么也没做

本文介绍如何使用RxJava创建一个永远不发射数据也不终止的Observable实例,并深入探讨其内部实现原理。
828

被折叠的 条评论
为什么被折叠?



