我正在使用AlarmManager创建一个警报,它运行良好,但我想测试.setRepeating方法,我设置如下:
Calendar calMon = Calendar.getInstance();
calMon.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
calMon.set(Calendar.HOUR_OF_DAY, tPicker.getCurrentHour());
calMon.set(Calendar.MINUTE, tPicker.getCurrentMinute());
calMon.set(Calendar.SECOND, 0);
calMon.set(Calendar.MILLISECOND, 0);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calMon.getTimeInMillis(), 24 * 60 * 60 * 1000, newIntent(this, Calendar.MONDAY));
public static PendingIntent newIntent(Context context, int dayId){
Intent intent = new Intent();
intent.setAction("myApp.intent.action.CLOCK");
return PendingIntent.getBroadcast(context, dayId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
让我们说它设置的警报在每个星期一下午2点重复,星期一的第一个警报正确启动,如果我想测试下周警报,我去设置并将日期移动到下一个星期一和时间下午1:58,看它是否在下午2点工作,但是,在我更改设置后,闹钟在下午2点之前开始。
我想知道是否有更准确的方法来测试.setRepeating,或者我的配置中是否存在无法正常工作的内容。谢谢!
修改
感谢所提供的评论,我通过在计算中添加7来实现它,所以我能够通过在一周内修改手机中的日期和时间来测试警报:
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calMon.getTimeInMillis(), 7 * 24 * 60 * 60 * 1000, newIntent(this, Calendar.MONDAY));
谢谢!