Frage

Ich habe einen IntentService, der Webdienstaufrufe in die Warteschlange stellt.Ich übergebe mit jeder Absicht eine Ganzzahl als Extra, die den Typ des auszuführenden Webdienstaufrufs definiert.

Ich möchte eine Situation erstellen, in der die Absicht nicht verarbeitet wird, wenn eine Absicht zur Ausführung eines bestimmten Webdienstes an den IntentService übergeben wird und eine Absicht für denselben Webdienst bereits in der IntentService-Warteschlange vorhanden ist.Im Idealfall würde ich die Absicht wegwerfen, aber ich könnte auch ein Extra hinzufügen, das den Code darüber informiert, dass die Absicht übersprungen werden soll, sobald sie verarbeitet wird.Wenn Absichten eingehen, kann ich verfolgen, welche in einem Objekt, das ich dem IntentService hinzufüge, in der Warteschlange stehen.

Ich sehe jedoch keinen Ort, an dem die Absicht abgefangen werden kann, wenn sie an den IntentService übergeben wird.Soweit ich das beurteilen kann, kann ich es nur berühren, wenn onHandleIntent aufgerufen wird, und das wäre zu spät.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Es ist streng genommen nicht ratsam, aber ich würde so etwas vorschlagen:

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

Lassen Sie mich wissen, ob das funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top