¿Hay alguna forma en Android de detectar cuándo un usuario desliza una notificación hacia la izquierda y la elimina? Estoy usando un alarmmanager para establecer una alerta de repetición y necesito que mi alerta de repetición se detenga cuando el usuario cancela la notificación. Aquí está mi código:¿Cómo detectar si una notificación ha sido descartada?
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 para llamar alarmManager.cancel(displayIntent)
con el fin de 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 ha tocado la notificación o la ha descartado. ¡Gracias por tu ayuda!
No importa, encontré mi respuesta aquí: http://stackoverflow.com/questions/8811876/notification-deleteintent-does-not-work. – NewGradDev