С точки зрения UX - вы абсолютно правы, когда говорите, что вам следует показывать некоторые данные пользователю скорее, чем позже.Вы должны заполнить свой список результатов некоторыми данными, как только будет загружен первый запрос, и заполнить его дополнительными, как только будет решен второй.Вы наверняка хотите показать индикатор загрузки, пока идет загрузка!Хорошее объяснение показателей прогресса можно найти в Руководстве по проектированию материалов .
Я только что заметил, что вы пометили этот вопрос тегами retrofit
и rx-java
.Используя их, легко дождаться завершения обоих запросов и написать код, который будет выполняться позже.Вы можете использовать zip метод из RxJava
.Zip
примет несколько Observables и:
"вернет Observable, который применяет выбранную вами функцию к комбинации объектов, выпущенных, последовательно, двумя (или более)) другие Наблюдаемые, при этом результаты этой функции становятся элементами, испускаемыми возвращаемым Наблюдаемым. "
Предполагая, что у вас есть два базовых наблюдаемых объекта (по одному для каждого из ваших двух запросов), по завершении каждого изПосле этого вы заполняете свой набор данных (вероятно, Адаптер RecyclerView ?? ), и после того, как оба завершены (наблюдаемый zip), вы скрываете индикатор загрузки прогресса.