Ich arbeite an einer Chat-App in Android mit c2dm (gcm). Jede empfangene Nachricht löst eine Benachrichtigung aus, wenn meine App sie nicht direkt anzeigen kann. Das Problem ist, wenn der Benutzer nicht am Netz ist. In diesem Fall stapeln sich c2dm-Nachrichten und werden alle auf einmal geliefert, wenn er wieder online ist. Ein Klacks von Benachrichtigungstönen ist das Ergebnis des Hinzufügens aller Benachrichtigungen in einem Zeitraum von 1 Sekunde. Wie kann man das verhindern? Gewünschtes Verhalten ist, dass die Benachrichtigung Ton wird einmal abgespielt, während die TICKER und Benachrichtigung Inhalt auf dem neuesten Stand mit der letzten empfangenen Nachricht sindVerhindern mehrere Benachrichtigungstöne android
5
A
Antwort
5
Ich endete mit einem Alarm, der 1 Sekunde in die Zukunft gesetzt wurde. Wenn mehrere Alarme mit der gleichen Absicht eingestellt werden, werden die früheren automatisch gelöscht. Wenn also ein zweiter im Intervall von 1 Sekunde kommt, löscht er den ersten.
0
die collapse_key nutzen, um nur die letzte „Benachrichtigung“ des Stapels zu bearbeiten
Für mehr Infos, siehe https://developers.google.com/cloud-messaging/concept-options#collapsible_and_non-collapsible_messages
Verwandte Themen
- 1. So rufen Sie die Liste der verfügbaren Benachrichtigungstöne auf Android
- 2. Android IntentService - mehrere Instanzen derselben Anfrage verhindern
- 3. Mehrere Webbenachrichtigungen verhindern?
- 4. Mehrere Installationen verhindern
- 5. So verhindern Sie mehrere Toast-Überlappungen
- 6. Mehrere Übereinstimmungen in Listeniteration verhindern
- 7. android verhindern apk
- 8. Verhindern Fragment Recovery in Android
- 9. Verhindern, dass Android-Anwendung beginnt
- 10. Anwendung/Bildschirm Timeout verhindern Android
- 11. Mehrere parallele AsyncTask auf API10 verhindern?
- 12. Verhindern, dass mehrere Tasten gleichzeitig berührt werden
- 13. Verhindern mehrere Instanzen im Server gleichen Benutzernamen
- 14. Mehrere Instanzen einer GTK-Anwendung verhindern
- 15. ReactJs: Verhindern mehrere Male Taste drücken
- 16. Verhindern, dass mehrere Klickereignisse ausgelöst werden JQuery
- 17. jQuery verhindern, dass mehrere Ajax-Aufrufe
- 18. Wie kann man mehrere Ajax-Anfragen verhindern?
- 19. Wie android Talkback- verhindern seekbar Fortschritt
- 20. Worklight Simple Dialog Android verhindern Klick außerhalb
- 21. Verhindern von Android WebView Navigation mit Javascript
- 22. Android - Verhindern von Textverkürzung in SearchView-Vorschlägen?
- 23. Ermitteln und Verhindern von Verzögerungen bei der Android-Planung
- 24. Android-Zeichnung auf Leinwand Mehrere Mehrere Aktivitäten
- 25. Android, Mehrere Apps, Mehrere Kunden, Ein Keystore
- 26. Mehrere asynctasks in android
- 27. android libvlc mehrere Oberflächenprobleme
- 28. Android Studio mehrere Fragmente
- 29. Mehrere Animationen android
- 30. Mehrere Client-Server Android
Dies ist keine Option für mich, weil ich Nachrichten mit Payload verwende (dh nicht nur, dass eine neue Chat-Nachricht verfügbar ist, sondern auch der Nachrichtentext). Wenn also eine Nachricht minimiert ist, wird sie von meinem Client übersehen. Wenn GCM ein Flag hinzufügen würde, das angibt, dass eine zuvor gesendete Nachricht gelöscht wurde, kann ich den Server kontaktieren und eine Synchronisierung durchführen. Aber AFAIK gibt es keine Möglichkeit zu sagen, ob eine Nachricht zusammengebrochen ist. –