我是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);
,以便提醒将从列表和警报管理器中删除。
我想知道我的第一个代码是否正确