Flo
Si tengo algunos problemas con una notificación que quiero mostrar en la barra de notificaciones. Aunque configuré el indicador de notificación en Notification.DEFAULT_LIGHTS & Notification.FLAG_AUTO_CANCEL
la notificación no desaparece después de hacer clic en ella. ¿Alguna idea de lo que estoy haciendo mal?
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
int icon = R.drawable.icon;
CharSequence tickerText = "Ticker Text";
long time = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, time);
notification.flags = Notification.DEFAULT_LIGHTS & Notification.FLAG_AUTO_CANCEL;
Context context = getApplicationContext();
CharSequence contentTitle = "Title";
CharSequence contentText = "Text";
Intent notificationIntent = new Intent(this, SilentFlipConfiguration.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
mNotificationManager.notify(1,notification);
mientras construía Notification
por NotificationBuilder
puedes usar notificationBuilder.setAutoCancel(true);
.
-
Entonces, ¿qué diferencias crean notificaciones usando Notificación?
mNotificationManager.notify(1,notification);
y usando NotificationBuildermNotificationManager.notify(1, mBuilder.build());
? Gracias.– Yohanim
10 de julio de 2014 a las 11:54
-
Esta respuesta debe aceptarse, está más en línea con la doctrina actual de diseño de Android
– jmaculado
27 de agosto de 2014 a las 16:01
-
Esta respuesta es correcta. Se acepta que funciona pero no siempre. Hay un problema cuando hay notificaciones apiladas en GCM (o lo que sea que esté usando). Una vez que hace ping al servidor de notificaciones, regresa con muchas notificaciones y, a veces, simplemente repite la apariencia de la notificación.
– Nikola Milutinovic
1 de octubre de 2014 a las 1:01
-
notificationBuilder.setAutoCancel(true);
no me funciona ¿Debo poner antes de mi Intención Pendiente?– Kairi San
15 de febrero de 2016 a las 3:36
sinic
notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL
De la documentación:
Bit para ser bit a bit-oed en el campo de banderas que debe configurarse si la notificación debe cancelarse cuando el usuario hace clic en ella
-
Esta no es la respuesta correcta.
Notification.DEFAULT_LIGHTS
es parte delNotification.defaults
clase, no laNotification.flags
clase. Vea mi respuesta para los setters apropiados.– Darcy
2 de marzo de 2012 a las 15:13
-
notificación.flags = Notificación.DEFAULT_LIGHTS | Notificación.FLAG_AUTO_CANCEL; este método está funcionando gracias sync.
– Ravikumar11
26 de abril de 2013 a las 4:39
-
El código en esta respuesta hizo que el sonido de notificación se reprodujera varias veces. Mira las otras respuestas.
– ban-geoingeniería
16 de enero de 2015 a las 16:45
// Uses the default lighting scheme
notification.defaults |= Notification.DEFAULT_LIGHTS;
// Will show lights and make the notification disappear when the presses it
notification.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS;
-
He revisado los documentos de Android. No entiendo muy bien cuándo se deben usar las banderas. ¿Por qué solo la notificación.defaults=notificación.DEFAULT_LIGHTS no es suficiente para mostrar las luces? Porque la vibración y el sonido funcionan sin la bandera.
– Aswin
17 de agosto de 2012 a las 17:21
-
Estoy usando NotificationBuilder, NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(android.R.drawable.ic_popup_sync) .setContentTitle(“Nuevo Tweet”) .setContentText(“Hay ” + recuento + ” tweets”) ; mBuilder.setDefaults(NotificationCompat.DEFAULT_LIGHTS | Notificación.FLAG_AUTO_CANCEL);
– Joseph
16/10/2014 a las 20:03
Estado de 2016: puedes usar mBuilder.setAutoCancel(true)
.
Fuente: https://developer.android.com/reference/android/app/Notification.Builder.html
La respuesta para mí fue usar mBuilder.setOngoing(false)
usuario1810087
Usa la bandera Notificación.FLAG_AUTO_CANCEL
Notification notification = new Notification(icon, tickerText, when);
notification.setLatestEventInfo(context, contentTitle, contentText, pendingIntent);
// Cancel the notification after its selected
notification.flags |= Notification.FLAG_AUTO_CANCEL;
y para iniciar la aplicación:
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Intent intent = new Intent(context, App.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, intent_id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Ángel
Quitar una notificación
Las notificaciones permanecen visibles hasta que ocurre una de las siguientes situaciones:
- El usuario descarta la notificación.
- El usuario hace clic en la notificación y usted llamó a setAutoCancel() cuando creó la notificación.
- Llamas a cancel() para una identificación de notificación específica. Este método también elimina las notificaciones en curso.
- Llama a cancelAll(), que elimina todas las notificaciones que emitió anteriormente.
- Si configura un tiempo de espera al crear una notificación usando setTimeoutAfter(), el sistema cancela la notificación una vez que transcurre la duración especificada. Si es necesario, puede cancelar una notificación antes de que transcurra el tiempo de espera especificado.
Para más detalles ver:
https://developer.android.com/training/notify-user/build-notification?hl=en