对应代码
Observable.create(new ObservableOnSubscribe<Integer>() {
// 第一步:初始化Observable
@Override
public void subscribe(@NonNull ObservableEmitter<Integer> e) throws Exception {
Log.e(TAG, "Observable emit 1" + "\n");
e.onNext(10);
Log.e(TAG, "Observable emit 2" + "\n");
e.onNext(11);
Log.e(TAG, "Observable emit 3" + "\n");
e.onNext(12);
// e.onComplete();
Log.e(TAG, "Observable emit 4" + "\n" );
e.onNext(13);
e.onComplete();
}
当上方执行e.onComplete()时 下方才会执行onComplete()
而被阻断或者Error或者不发出上方onComplete()的情况 将不会执行onComplete()
/**
* Notifies the Observer that the {@link Observable} has finished sending push-based notifications.
* <p>
* The {@link Observable} will not call this method if it calls {@link #onError}.
*/
void onComplete();
官方解释