2012-12-27 122 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和更高版本上不可用(除非用户手动启动您的应用程序)。

上面的评论是正确的,但有一种方法是为每个闹钟安排下一个闹钟。