Помогите в составлении множества сетевых вызовов и скопируйте результат в 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);
В интерфейсе я должен отобразить список городов, после того, как получить все детали каждого города, а затем показать в ListView. Как достичь парсельных сетевых вызовов и накопить результат. ?
Я хочу, чтобы все детали детали города были помещены в Список в исходном состоянии 'объект'. Поскольку объект состояния имеет некоторую информацию, которая также должна быть удалена. Возможно ли это?
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;
}
Zip с интервалом - хороший подход. Работа для меня. Принял ваш ответ. – Mani