2016-09-28 3 views
0

Я хочу запустить сервис под названием SyncService на различных мероприятиях, как NetworkChange, GpsChange, AppOpenedByUser, DeviceBoot, OnNewSmsReceived ,Android: Queue вызовы Service

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

ответ

0

Каждый раз, когда вы пытаетесь запустить звезду, Intent будет доставлен на onStartCommandMethod. Вы можете использовать шаблон дизайна «Command» - создать команду из намерения и добавить ее в командную очередь. После завершения текущей команды вы проверяете, есть ли еще одна команда в очереди и выполнение другой команды. Это не так, прекратите службу. Обратите внимание, что по сравнению с IntentService вы должны явно запускать его в фоновом режиме.