Escribo algo así como un recordatorio para los usuarios. Los usuarios establecerán recordatorios para sus eventos, cuando llegue el momento, se establecerá una alarma repetitiva para activar una notificación de la barra de estado. Pero la alarma parece no detenerse después de que seleccioné la notificación o borré la notificación. No estoy seguro de dónde cancelar esta alarma repetitiva. A continuación se presentan algunos de los códigos: Configurar la alarma que se repite en mi actividad¿Cómo cancelar esta alarma repetitiva?
alarmTime = Calendar.getInstance();
Intent intent = new Intent(this, AlarmReceive.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmTime.add(Calendar.MINUTE,offset_time);
//Schedule the alarm
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), 30 * 1000, sender);
En mi método OnReceive, sólo se muestre la notificación en la barra de estado y Active la marca FLAG_AUTO_CANCEL
manager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
// Set the icon, scrolling text and timestamp
Notification notification = new Notification(R.drawable.medical, text, System.currentTimeMillis());
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, i, 0);
notification.flags = Notification.FLAG_AUTO_CANCEL;
manager.notify(R.string.service_text, notification);
¿Cómo puedo detener la alarma cuando el usuario selecciona la notificación o la borra?
quiero cancelar esta alarma cuando el usuario ve la notificación, pero la notificación se define en onReceive. Entonces, ¿cómo puedo determinar si el usuario conoce la notificación en mi actividad principal antes de cancelar la alarma? Gracias – Wen
@Wen: use un Intento diferente (por ejemplo, acción diferente) para iniciar su actividad principal de la Notificación que la que usa para el iniciador . O bien, si lleva una instancia existente de la actividad principal al primer plano, su Notificación activará onNewIntent() en la actividad, por lo que puede cancelar la alarma allí. – CommonsWare
La notificación activará otra actividad. ¿Qué quiere decir con el uso de una intención diferente para iniciar la actividad de la Notificación que el uso para el iniciador? – Wen