알람 확인하기
Android 에서 alarm.id 로 이미 생성된 알람이 있는지 없는지 확인하기 위해서는 다음과 같이 PendingIntent.FLAG\_NO\_CREATE
플래그를 사용하여 PendingIntent.getActivity
, PendingIntent.getBroadcast
, PendingIntent.getService
등을 호출해 보면 된다.
이미 설정된 알람이 없다면 null 을 반환한다.
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this, alarm.id, intent, PendingIntent.FLAG_NO_CREATE);
if (sender == null) {
// TODO: 이미 설정된 알람이 없는 경우
} else {
// TODO: 이미 설정된 알람이 있는 경우
}
알람 취소하기
또한, 이미 설정된 알람을 취소하기 위해서는 다음과 같이 PendingIntent.FLAG\_UPDATE\_CURRENT
플래그와 함께 알람매니저와 펜딩인텐트를 cancel()
해 주면 되는데,
이 때, 마지막 라인의 sender.cancel()
를 하지 않으면, 다음번에 위와 같이 알람 확인할 때 null 을 반환하지 않게 된다.
따라서, 알람 해제시에는 펜딩인텐트도 반드시 cancel()
하는 것을 잊지 말자.
AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this, alarm.id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
if (sender != null) {
am.cancel(sender);
sender.cancel()
}