Alarm 확인

Android

알람 확인하기

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()
}