Deleting a pending intent
I am trying to delete a alarm from the alarm manager which is using a
pending intent to broadcast, and a broadcast receiver is used to catch and
carry out the process,the deleteReminder function is getting called, but
the intent is still firing when the time comes. If there is something
wrong in the code please let me know.
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));
}
}
No comments:
Post a Comment