Android 安卓警报立即响起
为什么警报会立即启动而不是在指定的时间启动Android 安卓警报立即响起,android,alarm,Android,Alarm,为什么警报会立即启动而不是在指定的时间启动 Intent myIntent = new Intent(Notepad.this, MyAlarmService.class); PendingIntent pendingIntent = PendingIntent.getService(Notepad.this, 0, myIntent, 0); AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Intent myIntent = new Intent(Notepad.this, MyAlarmService.class);
PendingIntent pendingIntent = PendingIntent.getService(Notepad.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.YEAR, 2012);
calendar.set(Calendar.MONTH, 4);
calendar.set(Calendar.DAY_OF_MONTH, 5);
calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 4);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
如果我只使用calendar.add(calendar.SECOND,5)代码>,它会在5秒后启动
基于尼古拉斯答案的解决方案
Date dat = new Date();//initializes to now
Calendar cal_alarm = Calendar.getInstance();
Calendar cal_now = Calendar.getInstance();
cal_now.setTime(dat);
cal_alarm.setTime(dat);
cal_alarm.set(Calendar.HOUR_OF_DAY,Integer.valueOf(h));
cal_alarm.set(Calendar.MINUTE, Integer.valueOf(m));
cal_alarm.set(Calendar.SECOND,0);
if(cal_alarm.before(cal_now)){
cal_alarm.add(Calendar.DATE,1);
}
在我看来,您似乎正在将日历时间和日期设置为闹钟时间。可能设置两个不同的日历,一个用于当前时间,另一个用于报警时间。这有意义吗