soc*_*qwe 4 java reactive-programming rx-java
在RxJava中,我有一个Subscriber我订阅的对象Observable.稍后(onComplete()调用了一段时间后)我创建了一个new Observable并Subscriber使用之前使用的相同实例进行订阅.但是,这似乎不起作用.订户不可重复使用吗?
例:
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另一方面,它不包含有关订阅状态的任何信息,因此您可以重复使用它.每次订阅一个Observer时Observable,RxJava实现都会将它包装到一个new Subscriberfor.