帮助撰写多个网络电话并在Rxjava中累积结果。 (我正在使用的Android应用程序。)撰写多个网络电话RxJava - Android
State
-- List<City> cityList;
City
- cityId;
RestCall 1
Observable<State> stateRequest = restService.getStates();
RestCall 2
Observable<CityDetail> cityRequest = restService.getCityDetail(cityId);
在UI我有一种让每个城市的所有细节后显示的城市列表,然后显示在列表视图。 我如何实现parllel网络调用并累积结果。 ?
我想把所有的城市细节结果放在源状态“对象”的列表中。由于国家对象也有一些信息需要进行分析。这是可能的吗?
stateRequest ???
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<State>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(State result) {
// Get city list and display
}
});
我检查了这个例子,它显示了我们如何能更多地拉一个可观察的响应。下面的代码片段显示了3个可观察组合。 但在我的情况下,我不得不做20个网络电话并行或顺序(我的意思是在后台,但一个接一个)。我如何做到这一点。任何帮助或指示?
https://gist.github.com/skehlet/9418379
Observable.zip(f3Observable, f4Observable, f5Observable, new Func3<String, Integer, Integer, Map<String, String>>() {
@Override
public Map<String, String> call(String s, Integer integer, Integer integer2) {
Map<String, String> map = new HashMap<String, String>();
map.put("f3", s);
map.put("f4", String.valueOf(integer));
map.put("f5", String.valueOf(integer2));
return map;
}
间隔邮编是一个很好的方法。为我工作。接受你的答案。 – Mani 2014-11-03 13:48:37