Question

J'ai un service d'intention qui fait la mise en file d'attente des appels de service Web à faire. Je passe un entier en plus avec chaque intention qui définit le type d'appel de service Web à faire.

J'aimerais créer une situation où, si une intention d'effectuer un service Web particulier est transmise à l'intention et une intention pour ce même service Web existe déjà dans la file d'attente Investervice, l'intention n'est pas traitée. Idéalement, je jetterais l'intention, mais je pourrais également y ajouter un supplément qui permettait au code de sauter l'intention une fois qu'il est géré. Au fur et à mesure que les intentions arrivent, je pouvais garder une trace de celles dans la file d'attente dans un objet que j'ajoute à l'intensité.

Cependant, je ne vois pas d'endroit pour intercepter l'intention juste lorsqu'il est transmis à l'intensité. Pour autant que je sache, je ne peux le toucher que lorsque la main-d'œuvre est appelée et ce serait trop tard.

Des idées?

Était-ce utile?

La solution

Ce n'est pas conseillé à proprement parler, mais je suggérerais quelque chose comme ceci:

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

Faites-moi savoir si cela fonctionne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top