¿Cómo detectar si se ha rechazado una notificación?

¿Hay alguna manera en Android para detectar cuando un usuario pasa una notificación a la izquierda y lo elimina? Estoy usando un administrador de alarmas para establecer una alerta de repetición y necesito que mi alerta de repetición se detenga cuando la notificación sea cancelada por el usuario. Aquí está mi código:

Configuración de la alerta de repetición:

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), repeatFrequency, displayIntent); 

Mi código de notificación:

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Get the notification ID. int notifID = getIntent().getExtras().getInt("Reminder_Primary_Key"); //Get the name of the reminder. String reminderName = getIntent().getExtras().getString("Reminder_Name"); //PendingIntent stores the Activity that should be launched when the user taps the notification. Intent i = new Intent(this, ViewLocalRemindersDetail.class); i.putExtra("NotifID", notifID); i.putExtra("notification_tap", true); //Add FLAG_ACTIVITY_NEW_TASK to stop the intent from being launched when the notification is triggered. PendingIntent displayIntent = PendingIntent.getActivity(this, notifID, i, Intent.FLAG_ACTIVITY_NEW_TASK); NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notif = new Notification(R.drawable.flag_red_large, reminderName, System.currentTimeMillis()); CharSequence from = "Here's your reminder:"; CharSequence message = reminderName; notif.setLatestEventInfo(this, from, message, displayIntent); //Pause for 100ms, vibrate for 250ms, pause for 100ms, and vibrate for 500ms. notif.defaults |= Notification.DEFAULT_SOUND; notif.vibrate = new long[] { 100, 250, 100, 500 }; nm.notify(notifID, notif); //Destroy the activity/notification. finish(); } 

Sé que necesito llamar a alarmManager.cancel(displayIntent) para cancelar mi alarma de repetición. Sin embargo, no entiendo dónde poner este código. Necesito cancelar la alerta de repetición SOLAMENTE cuando el usuario haya pulsado en la notificación o la haya descartado. ¡Gracias por tu ayuda!

Creo que Notification.deleteIntent es lo que usted está buscando. El doctor dice:

La intención de ejecutar cuando la notificación es descartada explícitamente por el usuario, ya sea con el botón "Borrar todo" o borrándolo individualmente. Esto probablemente no debería ser el lanzamiento de una actividad ya que varios de ellos serán enviados al mismo tiempo.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.