重用订户

soc*_*qwe 4 java reactive-programming rx-java

在RxJava中,我有一个Subscriber我订阅的对象Observable.稍后(onComplete()调用了一段时间后)我创建了一个new ObservableSubscriber使用之前使用的相同实例进行订阅.但是,这似乎不起作用.订户不可重复使用吗?

例:

class Loader extends Subscriber<T> {

   public void load(){
       Observable.just("Foo").subscribe(this);
   }

   public void onComplete(){
     // update UI
   }

}
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我想实例化Loader一次,并load()多次调用,例如在用户点击刷新按钮之后......

Sam*_*ter 12

你不能重用Subscriber,因为它实现了Subscription,它有一个isUnsubscribed字段,一旦设置true,永远不会false再次成为,所以Subscription不可重用.

Observer另一方面,它不包含有关订阅状态的任何信息,因此您可以重复使用它.每次订阅一个ObserverObservable,RxJava实现都会将它包装到一个new Subscriberfor.