Ich arbeite an einer Anwendung, die Nachrichten von einem Server empfängt. Wenn eine Nachricht empfangen wird, wird eine Benachrichtigung angezeigt. Wenn eine zweite Nachricht empfangen wird, sollte sie gestapelt werden, anstatt eine ganz neue Benachrichtigung zu erstellen.Android-Benachrichtigungen werden nicht gestapelt
Ich habe eine Schnittstelle erstellt, die über eine Methode verfügt, die ausgeführt wird, wenn die Nachricht empfangen wird.
Das Objekt Server
ist, wo die Nachricht empfangen wird, und der Konstruktor akzeptiert die oben erwähnte Schnittstelle.
Wenn ich das Serverobjekt initialisiere, übergebe ich eine neue Instanz der Listener-Schnittstelle, in der die Methode überschrieben die Benachrichtigung erstellt. Der Gedanke ist, dass jedes Mal, wenn eine neue Benachrichtigung erstellt wird, die Ganzzahl NEW_POST_NOTI
um eins erhöht und zu einer Gruppe hinzugefügt wird.
Mein Code sieht wie folgt aus:
final int PUSHES_GROUP = 67;
int NEW_POST_NOTI = 56;
...
Server server = new Server((msg) -> {
nm = NotificationManagerCompat.from(ctx);
Notification noti = new NotificationCompat.Builder(ctx)
.setSmallIcon(R.drawable.ic_noti)
.setContentTitle("New Message")
.setContentText(msg)
.setGroup(PUSHES_GROUP)
.build();
nm.notify(NEW_PUSH_NOTI++, noti);
});
Am selben Code jedes Mal, wenn eine Nachricht empfangen wird, ausgeführt wird, erstellt aber getrennte Meldungen für jede Nachricht, statt sie zu gruppieren . Ich versuchte auch, setStyle
zu benutzen, um es InboxStyle
zu machen, aber ich bin nicht sicher, wie man Benachrichtigungen dynamisch diesem hinzufügt. Gibt es ein Problem mit meiner Logik oder verwende ich die Benachrichtigungs-APIs einfach falsch?
Gruppierung ist für Android Verschleiß. Für Android-Handheld, verwenden Sie Posteingang Stil mit Zeilen und Zusammenfassung: https://developer.android.com/training/wearables/benachrichtigungen/stacks.html # AddSummary – njzk2
Sie hatten Recht. Nicht so einfach wie ich es mir vorgestellt habe, aber trotzdem ziemlich einfach. – Plays2