1

Привет, Я разрабатываю приложение для Android. Мое приложение содержит вызовы API REST для извлечения данных с сервера. Таким образом, мои требования к приложениям таковы:Как выполнять параллельные вызовы API REST в android

У меня есть 2 вызова API REST, которые являются независимыми; Это означает, что оба они не зависят друг от друга; Поэтому я хочу выполнить параллельное выполнение. Результат обоих вызовов API, связанных с двумя различными действиями.

Я хочу запустить оба сетевых вызова в фоновом режиме. Не нужно выполнять в потоке пользовательского интерфейса.

Я смущаюсь следующими решениями: использовать отдельную задачу асинхронного вызова для каждого сетевого вызова. Что произойдет, если я выполнил 10 вызовов параллельно с асинхронной задачей?

Услуга намеренного использования: служба намерения будет хорошим решением для обработки нескольких сетевых вызовов, параллельных в фоновом режиме.

Как с этим справиться. Нужно хорошее решение для этого. Нужна помощь. Спасибо.

+0

выполнить 2 asyncTask – KOTIOS

+0

Привет стэки спасибо за быстрый повтор. Если я хочу запустить 10 сетевых вызовов, то я должен использовать 10 syanc-задач правильно? Будет ли это повлиять на мое приложение и приложение Ui? – nilkash

+0

Я не думаю, что u должен использовать это число asyncTask, но не влияет на UI. – KOTIOS

ответ

3

Выполнение на 2 AsyncTasks будет работать. Однако в Android версии 3.0 или выше вам нужно вызвать task.executeOnExecutor (THREAD_POOL_EXECUTOR, params) вместо выполнения. Если вы этого не сделаете, реализация AsyncTask 3.0 будет выполняться только по одной задаче одновременно. Если вы это сделаете, он использует пул из примерно 5 потоков для их запуска.

+0

Спасибо, Gabe sechan за помощью. У меня есть еще один вопрос, почему мы не можем использовать услугу за умысел? Средняя разница между ними. Спасибо за помощь – nilkash

+0

Ну, IntentService работает серийно - он делает один запрос, затем другой. Таким образом, это не сработает, если вы хотите запустить их параллельно. Помимо этого вы можете сделать это с помощью IntentService, это действительно вопрос предпочтения. –

+0

Итак, задача async создает новые потоки для новых запросов, но намерение службы работает в одном потоке, поэтому это серийный номер справа? – nilkash

Смежные вопросы