Capturer les intentions d'intensification avant la main
-
29-10-2019 - |
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?
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.