2012-08-23 19 views
5

Estoy trabajando en una aplicación de chat en Android usando c2dm (gcm). Cada mensaje recibido genera una notificación si mi aplicación no puede mostrarlo directamente. El problema es cuando el usuario está fuera de la red, en cuyo caso los mensajes de c2dm se acumulan y se entregan todos de una vez cuando vuelve a estar en línea. Una cacofonía de sonidos de notificación es el resultado de agregar todas las notificaciones en un período de 1 segundo. ¿Cómo prevenir esto? comportamiento deseado es una que el sonido de notificación se reproduce una vez, mientras que el tickertext y el contenido de la notificación están al día con el último mensaje recibidoEvitar notificación múltiple suena android

Respuesta

5

Terminé usando una alarma que se configuró 1 segundo en el futuro. Si configuro varias alarmas con el mismo intento, las anteriores se eliminan automáticamente. Entonces, cuando aparece un segundo en el intervalo de 1 segundo, elimina el primero.

0

Utilizar el collapse_key a procesar sólo el último "notificación" de la pila

Para más información, vea https://developers.google.com/cloud-messaging/concept-options#collapsible_and_non-collapsible_messages

+0

Esto no es una opción para mí porque uso mensajes con carga útil (es decir, no solo que hay un nuevo mensaje de chat disponible, sino también el texto del cuerpo). Entonces, si un mensaje se colapsa, mi cliente lo pierde. Si GCM agregaría un indicador que indica que se borró un mensaje enviado anteriormente, podría contactar al servidor y hacer una sincronización. Pero AFAIK no hay forma de saber si un mensaje se colapsó. –

Cuestiones relacionadas