отменить конкретную тревогу - PullRequest
0 голосов
/ 22 февраля 2012

Я устанавливаю сигналы тревоги в другое время.Я хочу удалить конкретную тревогу.Ex.Я установил 100 будильников в разное время, и теперь я хочу удалить будильник, установленный 25 февраля 2012 года в 10.45 утра.Как я могу это сделать.

Я написал следующий код для установки будильника.

       final AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
       GregorianCalendar  gc=new GregorianCalendar();
       gc.set(2012, 1, 22, 10, 42,0);

       Intent intent = new Intent(this, AlarmService.class);
       gc.set(Calendar.AM_PM,0);

       final PendingIntent sender = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);

       am.set(AlarmManager.RTC_WAKEUP, gc.getTimeInMillis(), sender);

У меня есть радиовещательный приемник для приема будильника.

Ответы [ 2 ]

4 голосов
/ 22 февраля 2012

Вам необходимо сохранить код запроса тревоги, то есть 1 в вашем случае здесь.2-й параметр, который вы передаете в методе PendingIntent.getBroadcast (), представляет собой код запроса для определенного сигнала тревоги. Поэтому, когда вы сохраняете код запроса вместе со временем, для которого вы устанавливаете сигнал тревоги, вам будет легко получить конкретный экземпляр сигнала тревоги.и затем вы можете отменить его, используя:

AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, OneShotAlarm.class);    //OneShotAlarm is the broadcast receiver you use for alarm      
PendingIntent sender = PendingIntent.getBroadcast(context,alarm_request_code, intent, 0);
am.cancel(sender);

Вы должны позаботиться о том, чтобы каждый ваш код запроса для разных сигналов тревоги был уникальным, иначе ваш сигнал тревоги будет перенесен на новое время, которое вы установили со старым кодом запроса..

Надеюсь, вы поняли.

0 голосов
/ 22 февраля 2012

Вам может потребоваться сохранить его в какой-либо форме структуры данных, чтобы отслеживать время и объект.При этом я раньше не пытался хранить объекты AlarmManager.

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