Erläuterung zu den Dokumenten für PendingIntent.FLAG_CANCEL_CURRENT

8

Aus der Dokumentation der ausstehenden Absicht FLAG_CANCEL_CURRENT in Android:

  

Durch Abbrechen der vorherigen ausstehenden Absicht wird sichergestellt, dass nur Entitäten, die die neuen Daten erhalten, diese starten können. Wenn diese Zusicherung kein Problem ist, betrachten Sie FLAG_UPDATE_CURRENT

Kann jemand erklären, was diese Zeile bedeutet?

    
pikini 23.02.2013, 17:11
quelle

1 Antwort

22

Sobald du ein neues PendingIntent mit FLAG_CANCEL_CURRENT erstellt hast, wird alles, das ein vorheriges PendingIntent für dasselbe Intent hält, nicht länger in der Lage sein, das ursprüngliche PendingIntent auszuführen.

Nehmen wir zum Beispiel an, wir haben folgendes:

%Vor%

und wir verwenden PendingIntent beispielsweise mit Notification .

Später führen wir aus:

%Vor%

An diesem Punkt ist das ursprünglich erstellte PendingIntent ( pi ) nicht länger gültig und was immer wir pi2 für verwenden, wird den aktualisierten zusätzlichen Wert ( 2 ) sehen.

Wenn wir stattdessen:

%Vor%

An diesem Punkt stellen pi und pi2 beide das gleiche PendingIntent dar, und beide sehen den aktualisierten zusätzlichen Wert ( 2 ).

Oder, wenn wir es getan haben:

%Vor%

Zu diesem Zeitpunkt stellen pi und pi2 immer noch den gleichen PendingIntent dar, aber die Extras sind unverändert, da getActivity() das Original PendingIntent zurückgibt, ohne die neuen Extras anzuwenden .

In den meisten Fällen ist FLAG_UPDATE_CURRENT eine gute Antwort, wenn Sie versuchen, Extras in PendingIntent zu ersetzen.

    
CommonsWare 23.02.2013, 17:36
quelle

Tags und Links