我正在尝试构建一个警报应用程序。我之前让闹钟工作,我可以设置不同的时间,闹钟会适本地响起。然后我将 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);
最佳答案
可能是因为您的小时和分钟已经过去了。
假设现在是您当前时区的 16:07(使用 24 小时制),您执行此代码时 hour
为 3
和 min
为 27
。 03:27 是过去,因此警报会立即触发。
在调用了两次 set()
之后,看看时间是否比现在早,如果是,再 add()
一天。
关于android - 为什么我的 AlarmManager 会立即启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201148/