为什么我的AlarmManager会立即启动?

时间:2013-04-24 20:04:11

标签: android time calendar alarmmanager alarm

我正在尝试构建一个警报应用程序。我之前有闹钟工作,我可以设置不同的时间,闹钟会适当地响起。然后我将ChangeAlarmActivity的布局更改为TableLayout,现在它不起作用?我没碰到代码。以下是我设置闹钟的方法:

Intent alarmIntent = new Intent(ChangeAlarmActivity.this, AlarmReceiver.class);
PendingIntent pendingAlarmIntent = PendingIntent.getBroadcast(ChangeAlarmActivity.this, (int)alarm.getID(),
        alarmIntent, 0);

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
System.out.println("Alarm time: " + hour + ":" + min);
Calendar alarmCal = Calendar.getInstance();
//alarmCal.setTimeInMillis(System.currentTimeMillis());
alarmCal.set(Calendar.HOUR_OF_DAY, hour);  
alarmCal.set(Calendar.MINUTE, min);        
//alarmCal.set(Calendar.SECOND, 0);

alarmManager.set(AlarmManager.RTC_WAKEUP,
        alarmCal.getTimeInMillis(),
        pendingAlarmIntent);

1 个答案:

答案 0 :(得分:17)

可能是因为你的时间和分钟已经过去了。

假设您当前时区是16:07小时(使用24小时制),并且您使用hour 3min执行此代码{{1} 1}}。 03:27过去了,因此警报立刻响起。

完成两次27来电后,查看时间是否早于现在,如果是,set()一天。