android keine - Androiden ausstehende Absicht Benachrichtigung Problem




2 Answers

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.

Richtig.

Wie kann ich es schaffen, die richtigen Absichten zu starten?

Das hängt davon ab, ob Sie zwei Alarme haben, die auf einmal registriert werden oder nicht.

Wenn nicht, können Sie FLAG_ONE_SHOT oder eines der anderen PendingIntent Flags verwenden , damit Ihr zweites PendingIntent die neueren Extras verwendet.

Wenn Sie jedoch zwei Alarme gleichzeitig mit verschiedenen Intent Extras registrieren lassen filterEquals() , müssen Sie die beiden Intents materieller unterscheiden, so dass filterEquals() false zurückgibt, wenn Sie die beiden Intents vergleichen. Sie könnten beispielsweise setData() oder setAction() und für jeden Intent unterschiedliche Werte setAction() .

benachrichtigungen mehr

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!




eine andere Lösung:

Verwenden Sie das PendingIntent.FLAG_UPDATE_CURRENT wie folgt :

PendingIntent contentIntent = PendingIntent.getActivity(this, 0,i, PendingIntent.FLAG_UPDATE_CURRENT);

Das hat für mich funktioniert




Related

android notifications android-intent