Я новичок в программировании для Android и Java, и у меня есть приложение, которое запускает несколько будильников и повторяет их каждый день. он работает нормально, но моя проблема в том, что когда я удаляю будильник, он продолжает срабатывать на следующий день они сказали мне использовать метод отмены, и я создал эту функцию:
public void deleteReminder(Long reminderId){
Intent d = new Intent(mContext, Daily_OnAlarmReceiver.class);
d.putExtra(RemindersDbAdapter.KEY_ROWID_DAILY, (long)reminderId);
int Daily_requestCode = reminderId.intValue();
PendingIntent pid = PendingIntent.getBroadcast(mContext, Daily_requestCode, d, PendingIntent.FLAG_CANCEL_CURRENT);
mAlarmManager.cancel(pid);
}
Функция напоминания «Мой набор» выглядит следующим образом:
public void setReminder(Long reminderId, Calendar when) {
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);
}
они оба помещены в файл AlarmManager.java.
следующий код находится в другом java-файле, который удаляет тревогу только из списка, но не мешает системе активировать тревогу:
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_delete:
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
mDbHelper.deleteDailyReminder(info.id);
fillData();
return true;
}
return super.onContextItemSelected(item);
}
У меня вопрос, как вызвать этот new Daily_ReminderManager(this).deleteReminder(mRowId);
в предыдущем коде, чтобы напоминание было удалено из списка и из диспетчера аварийных сигналов.
и мне интересно, правильный ли мой первый код