幫助撰寫多個網絡電話並在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