我有这样的构造(RxJava 1.3.x):
view().filter(view -> view != null).subscribe(subscriber);这里还有view()的定义。它主动发出View实体。
public Observable<View> view() {
return views;
}问:为什么rx.Subscriber onNext的简单实现(并进一步传递到subscribe)可以工作(即调用onNext ),但这个不能:
subscriber.unsubscribe();
view().filter(view -> view != null).subscribe(subscriber);发布于 2019-06-05 15:32:22
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);https://stackoverflow.com/questions/56395754
复制相似问题