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

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

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

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

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

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

Как получить результат обработчика событий - Программирование Android
Подскажите, пожалуйста, начинающему. Как получить результат position из onPageSelected? Смысл вот в чем. В фрагмент кинул кнопку,...

Получить результат от стороннего приложения - Программирование Android
Доброе время суток. Вызываю сторонний редактор из своей активности так: Intent edInt=new Intent(); ...

Работа с сетью в другом потоке. Нужно получить результат - Программирование Android
class AnotherThread extends Thread { @Override public void run() { try { ...

Отправить post запрос с параметрами на сайт и получить результат - Программирование Android
Всем привет! Делаю проект для сайта школы. Нужно отправить post запрос с параметрами на сайт и получить результат. Стандартный способ не...

Как создать ссылку для USSD запросов? - Программирование Android
как создать ссылку для USSD запросов?

Как вызвать другой результат try-catch в методе? - Программирование Android
Как вызвать другой результат try-catch в методе doInBackground? ПС: Приложение для андроид, есть типо такого @Override ...

SQLite как записать результат запроса в переменную (Android, Java) - Программирование Android
Здравствуйте! Помогите, пожалуйста решить проблему. Необходимо получить кол-во записей в таблице. Для этого использую такой вот запрос:...

Как вернуть результат в активити включил юзер gps или нет? - Программирование Android
Как вернуть результат в активити включил юзер gps или нет?

Как получить apk? - Программирование Android
Я пишу на C++/Qt. хочу получить apk, что бы на мобильный себе скинуть, друзьям, там, дать или ещё, что с ним сделать. Как собрать проект...

Как получить контакты? - Программирование Android
вот мой код package com.example.app; import android.app.ListActivity; import android.database.Cursor; import...

Как получить текст из ID - Программирование Android
У каждого виджета на активити есть свой уникальный id. При добавлении виджета нужно указать его id в виде строки. Как можно потом...

Перехват запросов от WebView - Программирование Android
Добрый день! Подскажите, пожалуйста, кто в теме. Есть такая ситуация: Необходимо перехватить некоторые пакеты, исходящие от WebView,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shavuz
101 / 107 / 20
Регистрация: 29.01.2014
Сообщений: 534
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 и получать их одним запросом.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
22.11.2016, 20:07     Retrofi 2 как получить результат параллельных запросов #3
свой Callback написать, наследоваться от ретрофитовского
и там поле сделать int pos;

после того как он отработал - брать поле и писать в массив в позицию pos
PROFIT
Ответ Создать тему
Опции темы

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