如何测试AlarmManager.setRepeating?

时间:2014-02-23 16:54:10

标签: android alarmmanager

我正在使用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));

谢谢!

0 个答案:

没有答案