Вопрос относительно конкретной "разницы" между Service и IntentService - PullRequest
1 голос
/ 26 мая 2011

Мы немного тестировали сервисы и IntentServices в Android. Насколько мы поняли, одним из преимуществ IntentService является его собственный поток и рабочая очередь ... После тестирования мы заметили, что если вы отправите 100 намерений обеим службам, они оба начнут выполняться последовательно ...

Это довольно ожидаемое от IntentService из-за его рабочей очереди, но как Android ведет себя относительно нескольких запросов к не многопоточному Сервису? Потому что кажется, что у него есть какая-то рабочая очередь? Или, может быть, какая-то Intent-очередь, которая хранится в самой системе Android? И если да, есть ли способ прикрепить к нему, например, чтобы увидеть его длину / размер?

1 Ответ

3 голосов
/ 26 мая 2011

но как Android ведет себя в отношении нескольких запросов к не многопоточному Сервису?

Вызовы на startService() ставятся в очередь сообщений в очереди сообщений для основного потока приложения отправителя, так же, как и вызовы любой операции с графическим интерфейсом (например, setText()), вызовы startActivity() и т. Д.

IntentService имеет вторую очередь внутри самой службы для получения Intents для обработки фоновым потоком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...