2012-12-27 128 views
0

此代碼在25/12/2012設置鬧鐘。 2012年每年如何取代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和更高版本上不可用(除非用戶手動啓動您的應用程序)。

上面的評論是正確的,但有一種方法是爲每個鬧鐘安排下一個鬧鐘。