Я хочу скачать из Интернета с IntentService
. Я передаю URL-адрес через Intent
в IntentService
, вызывая startService(intentserive);
.
Если я вызову startService
для различных намерений, пойдут ли намерения в очередь на загрузку?
Я хочу скачать из Интернета с IntentService
. Я передаю URL-адрес через Intent
в IntentService
, вызывая startService(intentserive);
.
Если я вызову startService
для различных намерений, пойдут ли намерения в очередь на загрузку?
Краткий ответ на ваш вопрос - ДА. Из документов:
IntentService — это базовый класс для служб, которые обрабатывают асинхронные запросы (выраженные как намерения) по требованию. Клиенты отправляют запросы через вызовы startService(Intent); служба запускается по мере необходимости, обрабатывает каждое намерение по очереди, используя рабочий поток, и останавливается, когда заканчивается работа.
Этот шаблон «процессор рабочей очереди» обычно используется для выгрузки задач из основного потока приложения. Класс IntentService существует, чтобы упростить этот шаблон и позаботиться о механике. Чтобы использовать его, расширьте IntentService и реализуйте onHandleIntent(Intent). IntentService получит намерения, запустит рабочий поток и при необходимости остановит службу.
Все запросы обрабатываются в одном рабочем потоке — они могут занимать столько времени, сколько необходимо (и не будут блокировать основной цикл приложения), но одновременно будет обрабатываться только один запрос.
Ссылка на официальную документацию
Да. Служба намерений ставит в очередь все рабочие намерения и обрабатывает их одно за другим в одном рабочем потоке.