Как отменить повторную установку будильника на каждый день - PullRequest
0 голосов
/ 17 октября 2011

Я работаю над событиями календаря.

При добавлении событий в календарь я создаю оповещение с помощью диспетчера тревог

это работает нормально.

Iнеобходимо отменить предупреждение для этого конкретного события при удалении события.

Я устанавливаю сигнал тревоги следующим образом.

AlarmManager amgr=(AlarmManager)getSystemService(Context.ALARM_SERVICE);

Intent intent=new Intent(AmdAddEvent.this, RepeatingAlarmReceiver.class);
intent.putExtra("time", mAlarmTime);
PendingIntent pendingIntent=PendingIntent.getBroadcast(AmdAddEvent.this,(int) mAlarmTime,intent,PendingIntent.FLAG_CANCEL_CURRENT);


amgr.setRepeating(AlarmManager.RTC_WAKEUP, mAlarmTime,AlarmManager.INTERVAL_DAY, pendingIntent);

как отменить предупреждение при удалении события.

Пожалуйста, помогите мне относительно этого

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 17 октября 2011

Если вы кодируете удаление события в другом классе, вам нужно снова создать намерение с тем же идентификатором (в вашем случае это (int) mAlarmTime), а затем вы можете отменить определенное намерение тревоги.просто используйте cancel () объекта alarmManager.Введите следующие строки кода, где вы удаляете событие тревоги:

try
{       
    Intent intent=new Intent(AmdAddEvent.this, RepeatingAlarmReceiver.class);
    intent.putExtra("time", mAlarmTime);
    PendingIntent pendingIntent=PendingIntent.getBroadcast(AmdAddEvent.this,(int) mAlarmTime,intent,PendingIntent.FLAG_CANCEL_CURRENT);

    amgr.cancel(pendingIntent);
}
catch (Exception e) {
    // TODO: handle exception
}
0 голосов
/ 27 февраля 2013

НЕ ИСПОЛЬЗУЙТЕ getBroadcast (), метод не будет работать.

Используйте следующий код для создания будильника для создания действия:

pendingIntent = PendingIntent.getActivity(RemindingService.this, day, intent, PendingIntent.FLAG_UPDATE_CURRENT |PendingIntent.FLAG_ONE_SHOT);

Используйте следующий код для отмены будильника в любое время:

pendingIntent = PendingIntent.getActivity(RemindingService.this, id, intent, PendingIntent.FLAG_NO_CREATE|PendingIntent.FLAG_ONE_SHOT);
if(pendingIntent != null) {
alarmMgr.cancel(pendingIntent);
   pendingIntent.cancel();  
}

Это будет проверено и работает хорошо.

0 голосов
/ 17 октября 2011
amgr.cancel(Pending Intent); ,

Вы можете использовать это для отмены ожидающего события тревоги.

Отмена AlaramManager

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...