sobre sistema servicio quitar permanentes otras ocultar notificaciones notificacion muestra desactivar datos como aplicaciones android notifications android-intent

sistema - quitar notificacion sin servicio de datos android



Intento de notificación de Android para borrarlo (6)

Echa un vistazo a FLAG_AUTO_CANCEL

Se debe asignar bit a bitwise en el campo de banderas que se debe establecer si la notificación se debe cancelar cuando el usuario hace clic en ella.

EDITAR:

notification.flags |= Notification.FLAG_AUTO_CANCEL;

He leído muchos ejemplos de cómo crear mensajes de notificación. Lo que quería lograr es que la notificación sea ejecutada por un widget, me gustaría que la intención de la notificación al hacer clic se borre cuando el usuario hace clic en ella. No tengo una actividad a la que regresar. La notificación para mis propósitos simplemente notificará, nada más. Entonces, ¿cuál sería el código de un intento que simplemente se borra / cancela a sí mismo? El código a continuación es una actividad lanzada por un botón (código de botón no incluido) la notificación se activará mediante un servicio en segundo plano.

CharSequence title = "Hello"; CharSequence message = "Hello, Android!"; final NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); final Notification notification = new Notification(R.drawable.icon,"A New Message!",System.currentTimeMillis()); notification.defaults=Notification.FLAG_ONLY_ALERT_ONCE+Notification.FLAG_AUTO_CANCEL; Intent notificationIntent = new Intent(this, AndroidNotifications.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,notificationIntent, 0); notification.setLatestEventInfo(AndroidNotifications.this, title,message, pendingIntent); notificationManager.notify(NOTIFICATION_ID, notification);

Gracias


Establezca los indicadores en notification.flags en lugar de notification.defaults.

Ejemplo:

notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE | Notification.FLAG_AUTO_CANCEL;


La única forma que puedo ver de hacer esto es hacer que el Punto de Intent su Notification un Service segundo plano. Cuando se lanza este Servicio, borrará la Notification dada usando NotificationManager.cancel(int id) . El Service entonces se detendría a sí mismo. No es bonito, y no sería fácil de implementar, pero no puedo encontrar ninguna otra forma de hacerlo.


Si está utilizando NotificationCompat.Builder (una parte de android.support.v4 ), simplemente llame al método de su objeto setAutoCancel

NotificationCompat.Builder builder = new NotificationCompat.Builder(context); builder.setAutoCancel(true);

Algunos tipos informaban que setAutoCancel() no funcionaba para ellos, por lo que puedes probarlo también.

builder.build().flags |= Notification.FLAG_AUTO_CANCEL;


Usar setContentIntent debería resolver su problema:

.setContentIntent(PendingIntent.getActivity(this, 0, new Intent(), 0));

Por ejemplo:

NotificationCompat.Builder mBuilder= new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.notification_icon) .setContentTitle("title") .setAutoCancel(true) .setContentText("content") .setContentIntent(PendingIntent.getActivity(this, 0, new Intent(), 0)); NotificationManager notificationManager= (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(0, mBuilder.build());

A menudo, es posible que desee dirigir al usuario al contenido relevante y, por lo tanto, podría reemplazar "nuevo Intento ()" por otra cosa.


/** Post a notification to be shown in the status bar. Obs.: You must save this values somewhere or even pass it as an extra through Intent to use it later */ notificationManager.notify(NOTIFICATION_ID, notification); /** Cancel a previously shown notification given the notification id you''ve saved before */ notificationmanager.cancel(NOTIFICATION_ID);