我正在尝试从警报管理器中删除警报,该警报管理器正在使用挂起的意图进行广播,并且广播接收器用于捕获并执行该过程,正在调用 deleteReminder 函数,但是当时间到时意图仍在触发来了。如果代码中有问题,请告诉我。
public class ReminderManager {
private Context mContext;
private AlarmManager mAlarmManager;
private Intent i;
public ReminderManager(Context context) {
mContext = context;
mAlarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
}
public void setReminder(Long taskId, Calendar when) {
System.out.println("setReminder Called");
i = new Intent(mContext, Receiver.class);
i.putExtra(Database.KEY_ROWID, (long) taskId);
Toast.makeText(mContext, "setReminder" + Fragment.uniqueId,
Toast.LENGTH_SHORT).show();
PendingIntent pi = PendingIntent.getBroadcast(mContext,
Fragment.uniqueId, i, PendingIntent.FLAG_ONE_SHOT);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi);
}
public void deleteReminder(int uniqueID) {
System.out.println("deleteReminder Called");
i = new Intent(mContext, Receiver.class);
i.putExtra(Database.KEY_ROWID, (long) uniqueID);
Toast.makeText(mContext, "deleteReminder" + uniqueID,
Toast.LENGTH_SHORT).show();
PendingIntent.getBroadcast(mContext, uniqueID, i,
PendingIntent.FLAG_UPDATE_CURRENT).cancel();
mAlarmManager.cancel(PendingIntent.getBroadcast(mContext, uniqueID, i,
PendingIntent.FLAG_UPDATE_CURRENT));
}
}