【发布时间】:2017-12-05 22:57:56
【问题描述】:
我订阅了一个观察者如下
public PublishSubject<ChannelModel> publisher = PublishSubject.create();
publisher.subscribe(observer);
Observer<ChannelListModel> observer = new Observer<ChannelListModel>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(ChannelListModel model) {
adapter.setChannels(model.getChannels());
}
};
当我第一次请求数据并显示相同的数据时,它工作得非常好。但是如果请求失败并且一旦调用 onError ,发布者就会失去它的观察者。我想重新订阅同一个观察者。这样当我重试失败的请求时,我可以将结果发布给观察者。
【问题讨论】:
-
您不能重试终止的
PublishSubject,因为它只会继续发出终端事件。您必须使用其他构造或永远不要终止PublishSubject。看看RxRelay。