2016-01-31 4 views
0

Я использую асинхронный http-клиент Loopj android. У меня есть цикл for, который создает несколько асинхронных HTTP-запросов к веб-службе.Получать уведомления о завершении выполнения нескольких запросов AsyncHttpClient

Есть ли способ получить уведомление, когда все они закончатся?

ответ

1

Как http://loopj.com/android-async-http/ может использоваться статическим способом. Что вы можете сделать, каждый раз, когда вы создаете запрос, вы добавляете к статической переменной, и всякий раз, когда вы получаете ответ (включайте оба сценария onsucess/onfailure, уменьшите статическую переменную на 1). Когда переменная снова 0, сделайте свой материал.

0

Не уверен, что это именно то, что вы хотите, однако это может быть хорошим решением для вас. Вы можете просто использовать свойство «получить». Описание: «Ожидает, если необходимо для завершения вычисления, а затем извлекает его результат».

И поскольку вы используете его в цикле, вы, возможно, хотите добавить результат в список или что-то в этом роде.

1

Вы можете сделать это через прослушиватель автобусов событий. В состоянии завершения вашего запроса вы можете отправить событие всем подписчикам, которых хотите уведомить. Проверка реализации для автобусов событий ниже:

Но все это зависит от вас код. если вы знаете, сколько будет отправлено множество запросов, тогда легко подписаться на все события каждого асинхронного запроса, и вы можете проверить, все ли выполнено. Если вы еще не знаете количество запросов раньше, вы можете создать логику, чтобы сохранить статус каждого запроса, а затем отправить событие, чтобы уведомить нужного абонента.