注意:经过测试,onComplted之后,观察者将收不到消息,取消订阅函数得到执行
private void test(){ Observable.create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { Log.i("main", "call执行"); subscriber.onNext("Hello"); subscriber.onNext("Hi"); subscriber.onCompleted();//onComplted之后,观察者将收不到消息,取消订阅函数得到执行 subscriber.onNext("Aloha"); } }).doOnUnsubscribe(new Action0() { @Override public void call() { Log.i("main", "取消注册了"); } }) .subscribe(new Subscriber<String>() { @Override public void onNext(String s) { System.out.println(s); Log.i("main", "onNext执行"); } @Override public void onCompleted() {// Log.i("main", "onCompleted执行"); System.out.println("Completed!"); } @Override public void onError(Throwable e) { Log.i("main", "onError执行"); System.out.println("Ouch!"); } }); }