[英]AlarmManager firing at wrong time
我尝试使用AlarmManager
每天执行一次某些任务,如以下代码所示。
public void start_alarm(){
SharedPreferences.Editor editor=alarm_prefs.edit();
editor.putString("alarm", "alarm");
editor.apply();
editor.clear();
Intent start_alarm=new Intent(MainPage.this,MailService.class);
PendingIntent pi=PendingIntent.getService(MainPage.this, 100, start_alarm, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE,1);
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.AM_PM, Calendar.AM);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),1000*60*60*24,pi);
}
Alarm
没有引起任何问题。 但是如代码中所示,我将警报设置为12:30 AM
。 但以上代码在06:30 AM
触发警报。 我在外面做错什么了吗,请通知我。 我已在12:15 AM
在其他应用程序中设置了“警报”。 但它也会在错误的时间(即06:15 AM
触发。 请帮我解决一下这个。
要在12.30 AM
设置闹钟,您可以尝试以下代码。
// Set the alarm's trigger time to 12.30 A.M
calendar.add(Calendar.DATE,1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
代替
calendar.add(Calendar.DATE,1);
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.AM_PM, Calendar.AM);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.