rx.Subscriber 取消订阅后实体无法重复使用?

rx.Subscriber entity cannot be reused after unsubscribe?

我有这样的构造(RxJava 1.3.x):

view().filter(view -> view != null).subscribe(subscriber);

这里也是view()的定义。它主动发出 View 个实体。

public Observable<View> view() {
    return views;
}

问题:为什么 rx.Subscriber onNext(并进一步传递给订阅)的简单实现有效(即调用 onNext),但这个无效:

subscriber.unsubscribe();
view().filter(view -> view != null).subscribe(subscriber);

1.x Subscriber 是有状态的,一旦您取消订阅,它会立即取消订阅任何未来的使用。您必须创建一个新实例或使用 rx.Observer 接口的实例。

// as fields for example

Subscription subscripion;
Observer<View> observer = new Observer<View>() {
     @Override public void onNext(View t) { }
     @Override public void onError(Throwable t) { }
     @Override public void onCompleted() { }
});

// ...

if (subscription != null) subscription.unsubscribe();

subscription = view().filter(view -> view != null).subscribe(observer);