Notificación de cancelación automática no funciona para Android Lollipop

Quiero cancelar automáticamente mi notificación cuando el usuario haga clic en la notificación. El código siguiente funciona bien en todos los dispositivos, excepto el dispositivo de piruletas de Android. En el dispositivo Lollipop, la notificación es válida sólo cuando el usuario la ignora.

@SuppressWarnings ("deprecation") public void sendNotification (int id) {

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_launcher) .setContentTitle("Test") .setContentText("Jump to next screen") .setDefaults(Notification.DEFAULT_SOUND) .setAutoCancel(true); mBuilder.getNotification().flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_ONLY_ALERT_ONCE; // Creates an explicit intent for an Activity in your app Intent resultIntent = new Intent(this, NextActivity.class); resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent resultPendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, resultIntent, 0); //PendingIntent.FLAG_UPDATE_CURRENT mBuilder.setContentIntent(resultPendingIntent); NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // id, if there is a need to update the notification later on. mNotificationManager.notify(id, mBuilder.build()); Log.v(TAG, "Notification ID value " + id); //mNotificationManager.cancel(id); } 

¿Qué falta en este código?

Me parece bien. Mi cancelación automática sigue funcionando en 5.0.2. Permítanme darles una parte de mi código:

 public static void notif(int id, String title, String text, Context context, Class activity) { // get an instance of the NotificationManager service if (mNotifyMgr == null) mNotifyMgr = (NotificationManager) context.getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE); Intent intent = new Intent(context, activity); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); PendingIntent notifIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context) .setSmallIcon(R.mipmap.launcher) .setContentTitle(title) .setContentText(text) .setContentIntent(notifIntent); mNotifyMgr.notify(id, mBuilder.build()); } 

modifique lo siguiente: setAutoCancel (true) -> setAutoCancel (false); luego en la actividad de acción haga lo siguiente

 NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.cancelAll(); 

si desea establecer una condición especial puede establecer por

 intent.putExtra("key", "value") 
  • Apertura del navegador en la notificación push
  • GcmBroadcastReceiver no se dispara en Android 4.0.3
  • Notificación de envío extra enviada al dispositivo Android
  • Abra la actividad haciendo clic en la notificación push de Parse
  • GCM Mantenga mensajes en el servidor hasta que llegue uno nuevo
  • Anular el registro del cliente android desde el servidor de empuje unificado aerogear
  • Gestionar notificaciones múltiples / apilar notificaciones desde GCM
  • Registro de GCM con dos identificadores de registro de trabajo diferentes
  • Error de Google Android GCM NotRegistered
  • Iniciar la aplicación sólo si no está en ejecución
  • Error al empujar el elemento (s). En android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.