2017-01-07 2 views
1

예를 들어, 사용자가 매일 알람을 설정할 수있는 캘린더가 있습니다. 이 기능을 위해 나는 경보 관리자의 방법을 취했다 setRepeating(). 하지만 내 문제는 사용자가 특정 날짜의 알람을 삭제하려고하지만 모든 알람을 삭제하지 않을 때입니다. 내가 어떻게 만들 수 있니? 알람 관리자는 알람을 설정하는 유일한 방법입니까? 어떤 아이디어라도 감사 할 것입니다.알람 관리자에서 알람 삭제

클리브 레스트 나왔습니다 - 00:00에 매일 방아쇠를 당기고 모든 알람을 방법 alarmManager.set()으로 설정하는 방송 수신기를 설정하십시오. 삭제 된 알람은 데이터베이스에 저장되며 현재 알람이 삭제 된 알람과 일치하면 브로드 캐스트 리시버는이 알람을 설정하지 않습니다.

답변

0

AlarmManager의 메소드는 cancel();이며 도움이됩니다. 그러나 당신의 경우에 나는 당신이 당신의 질문에 뒷짐으로 주신 접근법에 대해 더 자신이 있었을 것입니다.

0

알람 관리자의 .cancel() 메서드를 사용할 수 있습니다.하지만 한 가지만 기억하십시오. 알람 관리자에게 알람을 설정했다고 보류중인 의도로 동일한 ID를 부여해야합니다.

PendingIntent pendingIntent = PendingIntent.getBroadcast(getContext(),id,intent, PendingIntent.FLAG_CANCEL_CURRENT); 
     alarmManager.cancel(pendingIntent); 

제공된 ID는 알람을 설정하는 데 사용 된 것과 동일해야합니다. 그게 도움이되기를 바랍니다. 어딘가에서 각 알람의 ID를 저장하고 필요할 경우 취소 할 것을 제안합니다.

관련 문제