Alarmmanager.setRepeating立即触发

时间:2012-10-15 05:58:21

标签: android alarmmanager

这是我的代码:

cal.set(Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH, hourOfDay, minute,Calendar.SECOND);

Intent intent=new Intent(FaceActivity.this,AlarmReceiver.class);
        PendingIntent pendingIntent=PendingIntent.getBroadcast(FaceActivity.this, 0, intent, 0);
        AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);

这里的hourOfDay是当前小时后的一小时。分钟可能具有相同的价值。

现在,cal.getTimeInMillis()设置为超过当前时间一小时的时间。 但是,当我运行此代码时,广播接收器立即被调用。 谁能告诉我,我做错了什么? 在此先感谢...

1 个答案:

答案 0 :(得分:2)

最后发现我的错误,我得到了YearMonthDaySecond的错误值。

通过使用下面的代码,它完全正常。

cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), hourOfDay, minute,cal.get(Calendar.SECOND));