0

此代码在 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);
4

1 回答 1

1

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

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

于 2012-12-27T14:45:15.220 回答