我有一个方法getData()返回一个可观察的。
public Observable<Data> getData() {
Observable<Data> observable = mApi.networkCall();
return observable;
}有许多客户调用此方法,如果可观测尚未完成,我希望他们只订阅在飞行中可观测。如果“可观测”已经完成,我需要重新启动呼叫,并获得一个新的“可观测”。什么是最好的方法来检测可观测的是完整的,我应该再次打电话给网络呼叫?
发布于 2015-08-20 23:12:08
使用.share()。第一次订阅将启动可观察到的订阅,随后的订阅者将收到相同的发射。一旦流终止,所有当前订阅者都将无效,下一个订阅将再次启动可观察到的订阅。
public Observable<Data> getData() {
return mApi.networkCall().share();
}请注意,我只期望getData()只被调用一次,并且返回的可观察重用。如果不是这样的话,我们将确保getData()返回一个单例。
https://stackoverflow.com/questions/32129453
复制相似问题