2012-10-15 85 views
4

这里是我的代码:Alarmmanager.setRepeating触发立即

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()设置为比当前时间早一个小时的时间。 但是当我运行这个代码时,立即调用广播接收器。 任何人都可以告诉我,我做错了什么? 在此先感谢...

+0

告诉我们你的代码,你设置的时间在'cal'.I猜它'cal.getTimeInMillis()'是过去的时间。 –

+0

@MMohsinNaeem请检查 –

+0

代码提供的信息不多。 :)记录'System.currentTimeMillis();''和'cal.getTimeInMillis()'。然后比较结果。 –

回答

2

终于找到了我的错误,我得到了错误的值YearMonthDaySecond

通过使用下面的代码,它工作得很好。

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