как очистить предыдущие тревоги в диспетчере тревог?

Я разрабатываю одно приложение оповещения, в котором я использую концепцию диспетчера аварийных сигналов, в которой пользователь может выбрать нет. за несколько дней до того, как пришло предупреждение (например, если он выберет 5 дней, предупреждение придет до 5 дней), сравнение списка дней происходит из базы данных sqlite. 3 вместо 5) до установки (5 дней) будильники не ясны всего пришло 8 будильников (5+3) пожалуйста, кто-нибудь решит мою проблему.

dbcal.set(currentcal.get(Calendar.YEAR), mnth,dt);
Log.e("dbCal Alarm","first"+dbcal.getTime());
if(!dbcal.getTime().before(currentcal.getTime())){
    uniqueno++;
    alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(SampledateActivity.this,AlarmReceiver.class);
    PendingIntent pi = PendingIntent.getBroadcast(SampledateActivity.this, uniqueno, intent, 0);
    alarmManager.set(AlarmManager.RTC_WAKEUP, dbcal.getTimeInMillis(), pi);
}
for(int k = 1 ; k <= time ;k++){
   Log.e("Entered to alarm","yes");
   dbcal.add(Calendar.HOUR, -24);
   if(!dbcal.getTime().before(currentcal.getTime())){
        uniqueno++;
        Intent intentlocal = new Intent(SampledateActivity.this,AlarmReceiver.class);
        PendingIntent pilocal = PendingIntent.getBroadcast(SampledateActivity.this, uniqueno, intentlocal, 0);
        alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, dbcal.getTimeInMillis(), pilocal);
        Log.e("dbCal Alarm","k: "+"k value:"+k+(time*i+k)+":"+dbcal.getTime());
  }
}

person NareshRavva    schedule 15.02.2012    source источник
comment
Следующий URL может быть вам полезен 7933669/   -  person prasad.gai    schedule 15.02.2012


Ответы (2)


Создайте PendingIntent с теми же requestCode, которые вы использовали для создания PendingInent, чтобы начать Alarm.

Intent intentlocal = new Intent(SampledateActivity.this,AlarmReceiver.class);
PendingIntent pilocal = PendingIntent.getBroadcast(SampledateActivity.this,
                                                       uniqueno, intentlocal, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.cancel(pilocal);
pilocal.cancel();
person Lalit Poptani    schedule 15.02.2012
comment
спасибо за ваш ответ, я использую ваш код, но он не работает - person NareshRavva; 15.02.2012
comment
когда я выбираю первые 5 дней и меняю дату и проверяю один будильник между днями, а затем я выбираю 1 день и устанавливаю дату в соответствии с моим требованием, до установки будильника также пришло, т.е. я получил 5 будильников, я думаю, что это ожидающие будильники до того, как я выбрал дело, т.е. 5 дней - person NareshRavva; 15.02.2012
comment
давайте продолжим это обсуждение в чате - person NareshRavva; 16.02.2012

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

person NareshRavva    schedule 16.02.2012