Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
DemD10
58 / 47 / 12
Регистрация: 03.09.2013
Сообщений: 426
#1

Retrofi 2 как получить результат параллельных запросов - Android

22.11.2016, 14:17. Просмотров 145. Ответов 2
Метки нет (Все метки)

Все привет. Вот над чем я задумался. Допустим, я делаю три одинаковых запроса подряд на загрузку, к примеру, картинки в base. Затем мне нужно записать результаты в массив, но вот какая штука, запросы стартанули по очереди, одновременно, ну или с совсем небольшим интервалом, в секунду, но завершится они могут по разному, не факт что первый запрос вернет картинку быстрее, а нужно чтобы по итогу в массиве оказалось 3 картинки в нужном порядке (в порядке старта запросов). Так вот как бы это реализовать грамотно, я в подсознании понимаю что должно быть не сложно, но что-то туплю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2016, 14:17     Retrofi 2 как получить результат параллельных запросов
Посмотрите здесь:

Android Получить результат от стороннего приложения
Как получить контакты? Android
Перехват запросов от WebView Android
Как получить apk? Android
Android Как получить результат обработчика событий
Как получить текст из ID Android
Android Как вызвать другой результат try-catch в методе?
Android Как создать ссылку для USSD запросов?
Android SQLite как записать результат запроса в переменную (Android, Java)
Как вернуть результат в активити включил юзер gps или нет? Android
Отправить post запрос с параметрами на сайт и получить результат Android
Android Работа с сетью в другом потоке. Нужно получить результат

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shavuz
76 / 82 / 13
Регистрация: 29.01.2014
Сообщений: 369
22.11.2016, 19:33     Retrofi 2 как получить результат параллельных запросов #2
судя по всему у вас должно быть что то такое:
Java
1
2
3
4
5
6
7
8
9
10
11
12
call.enqueue(new Callback<User>() {  
    @Override
    public void onResponse(Call<User> call, Response<User> response) {
        if (response.isSuccessful()) {
        } else {
         
        }
    }
 
    @Override
    public void onFailure(Call<User> call, Throwable t) {
    }
отследить очередность не получится, например ответ на второй запрос может быть получен раньше чем на первый. то что можно сделать это отсылать запросы поочередно, пришел первый - отослали второй - и тд.(при чем при нормальном интернете время получения таким образом(поочередно) не будет больше чем параллельно отправленные запросы), но в таком случае нужно предусмотреть варриан что делать если по каким то причинам предыдущая картинка не пришла. делать это все нужно в onResponse
или же делать чтоб картинки лежали в одном API и получать их одним запросом.
Паблито
резкий
1958 / 1693 / 525
Регистрация: 12.05.2014
Сообщений: 6,039
Завершенные тесты: 1
22.11.2016, 20:07     Retrofi 2 как получить результат параллельных запросов #3
свой Callback написать, наследоваться от ретрофитовского
и там поле сделать int pos;

после того как он отработал - брать поле и писать в массив в позицию pos
PROFIT
Yandex
Объявления
22.11.2016, 20:07     Retrofi 2 как получить результат параллельных запросов
Ответ Создать тему
Опции темы

Текущее время: 14:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru