В моей основной деятельности у меня есть метод setRepeatingAlarm(), чтобы установить Alarms, когда приложение загружается первым. Этот метод успешно устанавливает Alarms путем циклического перехода по столбцу и получения целочисленного значения из каждой строки таблицы SQLite. Вот метод в основные:Я не могу отменить Alarms/PendingIntents в Android
for (int i : AlarmDays) {
Calendar cal = Calendar.getInstance();
if (cal.get(Calendar.MINUTE) >= i)
cal.add(Calendar.HOUR, 1);
cal.set(Calendar.MINUTE, i);
Intent intent = new Intent(ManageDebts.this, TimeAlarm.class);
pendingIntent = PendingIntent.getBroadcast(this, i,
intent, PendingIntent.FLAG_CANCEL_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
60 * 60 * 1000, pendingIntent);
}
После того, как метод завершается тогда цикл по строкам каждый раз и помещает каждый в CustomAdapter (Список) для отображения данных. Вот контекст (опять же, в основном) в моем OnCreate в главном классе:
datasource = new DebtDataSource(this);
datasource.open();
**am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
setRepeatingAlarm();**
values = datasource.getAllDebt();
adapter = new MyArrayAdapter(this, values);
setListAdapter(adapter);
Я хочу, чтобы пользователь либо длительное нажатие подряд, и он будет удалить элемент, или есть кнопка для удаления все строк. Все работает, но я не могу заставить тревогу уйти.
Я понимаю, КАК это сделать (отменить метод, установив тот же pendingIntent с такими же дополнительными функциями), но мои попытки были сорваны! и я не знаю, ГДЕ это сказать? Все выше приведено в том же класс.
Независимо от того, удаляет ли пользователь одну или несколько строк, я думаю, что простой способ - удалить все аварийные сигналы и снова выполнить этот метод для их сброса. Может ли кто-нибудь помочь и сказать мне, где положить этот код отмены?