Androiden ausstehende Absicht Benachrichtigung Problem



Answers

Die Art und Weise, wie ich dieses Problem gelöst habe, war die Zuweisung eines eindeutigen requestCodes, wenn Sie den PendingIntent erhalten:

PendingIntent.getActivity(context, requestCode, showIntent, 0); 

Indem Sie dies tun, registrieren Sie sich bei dem System mit verschiedenen / eindeutigen Intent-Instanzen. Tipp: Eine gute Möglichkeit, den requestCode eindeutig zu machen, wäre die aktuelle Systemzeit.

int requestID = (int) System.currentTimeMillis();
Question

Ich habe eine Alarm-Sache in meiner App und es startet eine Benachrichtigung, die dann, wenn gedrückt, startete eine Aktivität. Das Problem ist, dass wenn ich mehr als einen Alarm erstelle, die Aktivität, die von der Benachrichtigung gestartet wird, die gleichen Extras wie die erste erhält. Ich denke, das Problem liegt entweder in der Absicht, die ich in die ausstehende Absicht gesetzt habe, oder in der ausstehenden Absicht selbst. Ich denke, ich muss vielleicht eine Flagge auf eine davon setzen, aber ich weiß nicht welche.

Intent showIntent =new Intent(context, notificationreceiver.class);
    showIntent.putExtra("details", alarmname);

PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
        showIntent, 0); 

    notification.setLatestEventInfo(context, "The event is imminent",
            alarmname, contentIntent);

Und der Empfänger der Benachrichtigung

Bundle b = getIntent().getExtras();
    String eventname = b.getString("details");
    details.setText(eventname);

Der Zusatz "Details" ist bei jedem nächsten Mal, wenn eine Benachrichtigung stattfindet, gleich, anstatt dass der andere Wert angezeigt wird. Bis ich die Absichten eingestellt habe, bin ich sicher, dass der korrekte Wert zu den "Details" geht, also ist es ein Problem, die erste Absicht zu erhalten, jedes Mal, wenn ich irgendeine Benachrichtigung drücke. Wie kann ich es schaffen, die richtigen Absichten zu starten? Hoffe ich war so klar wie ich konnte Danke!




Ich hatte dieses Problem in meiner App und habe einfach eine Zufallszahl generiert, um übergeordnete Benachrichtigungsabsicht zu umgehen:

int random= new Random().nextInt();
PendingIntent resultPendingIntent =
      stackBuilder.getPendingIntent(
              random,
              PendingIntent.FLAG_UPDATE_CURRENT
      );



Related