Я создаю приложение, в котором пользователь может установить будильник на основе местоположения GPS. Я хочу, чтобы в каждый момент времени была активна только 1 сигнализация. Поэтому, когда пользователь устанавливает второй сигнал тревоги, я хочу отменить уведомление для первого сигнала тревоги (затем установить новое уведомление для второго сигнала тревоги).
Прямо сейчас мои уведомления продолжают складываться (так как я не могу их удалить, поэтому они все активны). Вот мой код, где я пытаюсь удалить сигнал тревоги и уведомления:
// Stop the location alarm activity
Intent intentAlarmService_delete = new Intent(v.getContext(), AlarmService.class);
stopService(intentAlarmService_delete); // I think this calls onDestroy() in AlarmService class ...
mNtf = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
mNtf.cancelAll();
Intent alarmIntent2 = new Intent(getApplicationContext(), OneTimeAlarmReceiver.class);
PendingIntent pendingIntentAlarm = PendingIntent.getBroadcast(getApplicationContext(), PENDING_INTENT_REQUEST_CODE1,
alarmIntent2, PendingIntent.FLAG_CANCEL_CURRENT);
pendingIntentAlarm.cancel();
Это функция onDestroy () в моем AlarmService.class (я не совсем уверен, когда это вызывается ...)
public void onDestroy(){
super.onDestroy();
mNtf.cancel(NOTIFICATION_ID1);
Intent alarmIntent = new Intent(getApplicationContext(), OneTimeAlarmReceiver.class);
PendingIntent pendingIntentAlarm = PendingIntent.getBroadcast(getApplicationContext(), PENDING_INTENT_REQUEST_CODE1,
alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT);
pendingIntentAlarm.cancel();
Intent intentAlarmService = new Intent(getApplicationContext(), AlarmService.class);
stopService(intentAlarmService);
mNtf.cancel(NOTIFICATION_ID1);
mNtf.cancelAll();
}
Тогда вот как я устанавливаю новый будильник и уведомление:
Intent intentAlarmService2 = new Intent(v.getContext(), AlarmService.class);
startService(intentAlarmService2);
Кстати, мой AlarmService.class наверняка работает.
Заранее спасибо.