브로드 캐스트하기 위해 보류중인 인 텐트를 사용하는 알람 관리자에서 알람을 삭제하려고하는데 브로드 캐스트 리시버를 사용하여 프로세스를 포착 및 실행하면 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));
}
}
Fragment.uniqueId는 param uniqueId와 동일합니까? – pskink
그들은 같은 값을 가지고 있습니다. 단지 다른 장소에서 오는 것입니다. – Eriz