Immer wenn ein neues Ereignis hinzugefügt wird, wird eine Push-Benachrichtigung an den Benutzer gesendet. Wenn zehn Ereignisse in einer Zeile hinzugefügt werden, werden zehn Push-Benachrichtigungen an den Benutzer gesendet, ein Verhalten, das lästig ist.Wie wird die kumulative Push-Benachrichtigung angezeigt, anstatt mehrere Benachrichtigungen anzuzeigen, die dazu neigen, gleichzeitig angezeigt zu werden?
Ich möchte es so haben: wenn zehn Ereignisse in Zeile hinzugefügt werden, oder zeitlich sehr nahe beieinander hinzugefügt, wird nur eine Push-Benachrichtigung an jeden Benutzer gesendet werden, sagen: "#{event.name} and 19 others events added that match your interests."
.
Hier ist, was ich bisher getan habe:
Added ein Feld last_sent_notification
in users
Tabelle. Jedes Mal, wenn ein neues Ereignis hinzugefügt wird, wird überprüft, dass das erstellte Ereignis nicht im Umkreis von 2 Minuten von last_sent_notification
liegt und eine Benachrichtigung ausgelöst wird.
Wenn ein neu erstelltes Ereignis im Umkreis von 2 Minuten von last_sent_notification
liegt, wird ein Hintergrundjob erstellt, der 2 Minuten auf ein anderes bevorstehendes Ereignis wartet und nach 2 Minuten ausgelöst wird. Wenn während der 2-Minuten-Wartezeit ein neues Ereignis erstellt wird, berücksichtigt die Benachrichtigung alle Ereignisse, die während dieser 2-Minuten-Wartezeit erstellt wurden.
Der einzige Nachteil dieses Problems ist: Wenn ein Ereignis hinzugefügt wird, wird die Benachrichtigung nicht sofort gesendet. Es wird eine Verzögerung von 2 Minuten geben.
Gibt es ein Entwurfsmuster oder eine optimale Lösung, die diese Aufgabe besser erfüllen könnte?
Folgen Sie einfach der Dokumentation: http://developer.android.com/training/wearables/notifications/stacks.html – NSimon
@NicolasSimon es ist auf der Server-Seite erforderlich. –
Also, worauf hast du dich am Ende festgelegt? – e4c5