2012-12-27 7 views
0

이 코드는 2012 년 12 월 25 일에 알람을 설정합니다. 매년 2012 년을 어떻게 대체 할 수 있습니까?alarmmanager는 매년 설정됩니다

Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault()); 
cal.set(Calendar.DATE,25); 
cal.set(Calendar.MONTH,Calendar.DECEMBER); 
cal.set(Calendar.YEAR,2012); 
+1

알람이 울리면 다음 해로 리셋해야합니다. 매년 날짜를 만들 수는 없습니다. –

답변

1

알람은 디스크에 유지되지 않습니다. 알람이 트리거되기 오래 전에 장치가 리셋되거나 재부팅되거나 배터리가 거의 소모 될 가능성이 높기 때문에 오랜 기간 동안 AlarmManager를 사용하는 것은 좋지 않습니다. 기기 부팅 (BOOT_COMPLETED) 용 브로드 캐스트 리시버를 가지고 알람을 등록 할 수는 있지만 너무 안정적이지 않으므로 ICS 이상에서는 사용할 수 없습니다 (사용자가 앱을 수동으로 시작한 경우 제외).

위의 설명은 정확하지만 한 가지 방법은 각 알람이 다음 알람을 예약하는 것입니다.

관련 문제