Daten mit Notification click Event übergeben

  • 2 Antworten
  • Letztes Antwortdatum
K

Kliff

Neues Mitglied
1
Hallo,

ich will folgendes machen: Es sollen mehrere Statusbar Notifications angezeigt werden. Beim Klick auf eine Notification soll eine Methode aufgerufen werden. Damit die Methode weiß welche Notification angeklickt wurde, will ich dem Event weitere Daten mitgeben.

Ich erzeuge die Notification auf folgende Weise:

Code:
 Notification.Builder builder = new Notification.Builder(mContext);
 builder.setContentInfo(text);
 builder.setContentTitle(title);
        
 Intent intent = new Intent(CLICK_ON_NOTI_ACTION);
 intent.putExtra("test_daten", testDaten);
 PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, intent, 0);
 builder.setContentIntent(pi);
 Notification notification = builder.getNotification();
 mNotificationManager.notify(currNotificationId, notification);
 currNotificationId++;
Die Variable testDaten enthält bei jeder Notification einen anderen Wert. Über diesen Wert soll später identifiziert werden welche Notification angeklickt wurde. Ich fange den klick Event auf folgende Weise ab:
Ich registriere einen BroadcastListener...

Code:
IntentFilter filter = new IntentFilter(CLICK_ON_NOTI_ACTION);
filter.addAction(ACTION_START_CONNECT_DIALOG);
mContext.registerReceiver(new NotiListener(), filter);
...der Listener fängt den Event ab und versucht anhand von "test_daten" herauszufinden auf welche Notification geklickt wurde.

Code:
class NotiListener extends BroadcastReceiver
    {
         public void onReceive(Context context, Intent intent) 
        {
            Log.i("TEST", intent.getExtras().getString("test_data"));
        }
    }
Auf diese Weise werden nun mehrere Notifications angezeigt. Doch wenn ich nun eine eine Notification klicke und den Wert test_data aus dem Intent auslese, steht da immer der selbe Wert drin, egal welche Notification ich angeklickt habe. (Es ist immer der Wert aus der zu erst angezeigten Notification)
Warum ist das so? Wie kann ich das so ändern, das ich weiß auf welche Notification geklickt wurde?

viel Dank im voraus!!
 
Nimm verschiedene IDs für den PendingIntent (letzter Parameter von getBroadcast). In der Doku steht zwar, dass dieser Parameter nicht benutzt wird, das ist aber falsch.

Gesendet von meinem MB525 mit Tapatalk 2
 
wow, so geht es. Danke!!!
 

Ähnliche Themen

AnnaBauer21
Antworten
0
Aufrufe
499
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten