Захват 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);
}
Дай мне знать, если это работает.