Удалить будильник - PullRequest
       1

Удалить будильник

1 голос
/ 13 декабря 2011

У меня есть приложение, которое позволяет устанавливать несколько сигналов тревоги, и оно повторяет эти сигналы каждый день, и оно работает нормально. Моя проблема заключается в том, что когда я удаляю будильник, который был настроен на срабатывание в 12:00, на следующий день он будет срабатывать в 12:00, даже если он был удален! Кто-нибудь знает, где может быть проблема?

Я использую SQLite для хранения, извлечения и удаления аварийных сигналов.

Это часть AlarmManager Я даю каждому аварийному сигналу свой код запроса:

 Intent i = new Intent(mContext, Daily_OnAlarmReceiver.class);
    i.putExtra(RemindersDbAdapter.KEY_ROWID_DAILY, (long)reminderId); 
    int Daily_requestCode = reminderId.intValue(); 

    PendingIntent pi = PendingIntent.getBroadcast(mContext, Daily_requestCode, i, PendingIntent.FLAG_CANCEL_CURRENT); 

    mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);

и я также делаю то же самое для уведомления. Я даю каждому уведомлению свой код запроса.

Кто-нибудь знает, почему срабатывает будильник, даже если я его удаляю?

Ответы [ 2 ]

3 голосов
/ 13 декабря 2011

Звоните cancel() на AlarmManager

Intent intent = new Intent(this, AlarmReceive.class);
PendingIntent sender = PendingIntent.getBroadcast(this,
               0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManager.cancel(sender);
0 голосов
/ 11 августа 2012

Даже если вы используете другое значение requestId, метод AlarmManager cancel() проверяет только то, что указанное вами значение PendingIntent равно. Однако равенство фильтров не зависит от ваших дополнительных данных согласно документации . Таким образом, вы должны отменить их все, а затем пройтись по базе данных, чтобы добавить их обратно (пропуская те, которые вы удаляете).

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