Mehrere Android-Benachrichtigungen senden dieselben Daten beim Klicken

7

Benachrichtigung in android, die dieselbe Absicht beim Klicken verwendet. Ich sende Benachrichtigungen nach der Installation des Themas. Beachte, dass ich 4 Themes installiere und 4 Benachrichtigungen im Benachrichtigungsfenster erscheinen, aber wenn ich auf jede Benachrichtigung klicke, wird eine bestimmte Aktivität gestartet, aber die Absicht besteht darin, für jede Absicht die gleichen Daten zu haben.

Mein Code geht so

%Vor%

und ich drucke Absichtsdaten in onCreate of ThemeInfo-Aktivität als

%Vor%

Das Ergebnis, das ich in den Protokollen bekomme, ist

%Vor%     
Sharanabasu Angadi 10.06.2013, 12:25
quelle

1 Antwort

18

Ich hatte das gleiche Problem, und das Problem ist, dass Android ein wenig zu schlau ist und Ihnen die gleichen PendingIntent s anstelle von neuen gibt. Von den Dokumenten :

  

Ein häufiger Fehler, den Leute machen, besteht darin, mehrere PendingIntent -Objekte mit Intent s zu erstellen, die sich nur in ihren "extra" Inhalten unterscheiden und erwarten, jedes Mal eine andere PendingIntent zu erhalten. Das passiert nicht. Die Teile des Intent , die für den Abgleich verwendet werden, sind die gleichen, die durch Intent.filterEquals definiert sind. Wenn Sie zwei Intent -Objekte verwenden, die äquivalent zu Intent.filterEquals sind, erhalten Sie für beide den gleichen PendingIntent .

Ändern Sie Ihren Code wie folgt, um eine eindeutige requestCode :

anzugeben %Vor%

Dies stellt sicher, dass ein eindeutiges PendingIntent verwendet wird, im Gegensatz zu demselben.

Beachten Sie, dass hashCode() möglicherweise nicht eindeutig ist. Verwenden Sie daher möglichst eine andere eindeutige Ganzzahl als requestCode .

    
Oleg Vaskevich 19.06.2013, 20:29
quelle