每年都会设置闹钟管理员

时间:2012-12-27 14:03:12

标签: android

此代码在2012年12月25日发出警报。怎么可能每年取代2012年?

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 个答案:

答案 0 :(得分:1)

请记住,警报不会持久保存到磁盘。由于很可能在触发警报之前很久您的设备将被重置,重新启动或者电池耗尽,因此使用AlarmManager这么长时间并不是一个好主意。您可以使用广播接收器进行设备启动(BOOT_COMPLETED)并注册您的警报,但这也不太可靠,可能无法在ICS及更高版本上使用(除非用户手动启动您的应用程序)。

上面的评论是正确的,一种方法是为每个警报安排下一个警报。