Pregunta

Tengo un IntentService que pone en cola las llamadas al servicio web para realizarlas.Paso un entero como Extra con cada Intent que define el tipo de llamada de servicio web que se realizará.

Me gustaría crear una situación en la que, si un Intent para realizar un servicio web en particular se pasa al IntentService y ya existe un Intent para ese mismo servicio web en la cola de IntentService, el Intent no se procesa.Idealmente, tiraría el Intent, pero también podría agregarle un Extra que le permita al código omitir el Intent una vez que se maneja.A medida que ingresan los Intents, puedo realizar un seguimiento de cuáles están en la cola en algún objeto que agrego al IntentService.

Sin embargo, no veo un lugar para interceptar el Intent justo cuando se pasa al IntentService.Por lo que sé, solo puedo tocarlo cuando se llama a onHandleIntent y sería demasiado tarde.

¿Alguna idea?

¿Fue útil?

Solución

No es estrictamente recomendable, pero sugeriría algo como esto:

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);
}

Avíseme si funciona.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top