Захват IntentService Intents перед включением onHandleIntent

У меня есть IntentService, который ставит в очередь звонки веб-службы, которые будут сделаны. Я передаю целое число как Extra с каждым намерением, которое определяет тип вызова веб-службы.

Я хотел бы создать ситуацию, когда, если IntentService передается IntentService, который предназначен для выполнения определенного веб-сервиса, и Intent для этого же веб-сервиса уже существует в очереди IntentService, Intent не обрабатывается. В идеале я бы выбрасывал Intent, но я мог бы также добавить к нему Extra, который позволяет коду знать, что он пропускает Intent после его обработки. По мере появления Intents я мог отслеживать, какие из них находятся в очереди, в каком-то объекте, который я добавляю в IntentService.

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

Есть идеи?

1 ответ

Решение

Строго говоря, это не рекомендуется, но я бы предложил что-то вроде этого:

public int onStartCommand (Intent intent, int flags, int startId)
{
  // do your intent modification here
  //if(intentIsDuplicate(intent))

  // make sure you call the super class to ensure everything performs as expected
  return super.onStartCommand(intent, flags, startId);
}

Дай мне знать, если это работает.

Другие вопросы по тегам