我正设法在每天下午2:20设置闹钟。这是代码
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY,14);
calendar.set(Calendar.SECOND,20);
AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pendingIntent;
Intent intentService = new Intent(context, DownloadService.class);
//setting alarm to run at 2:20 pm
pendingIntent= PendingIntent.getService(context,0,intentService,PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent);
当我使用5*60*1000
作为间隔的值时,它可以正常工作。但是当我使用AlarmManager.INTERVAL_DAY
时,它并没有消失。有人能告诉我上面的代码是否正确吗?感谢。
答案 0 :(得分:0)
我认为您只是在INTERVAL_DAY中监督说明:
可识别的不精确重复间隔 运行时 setInexactRepeating (int,long,long,PendingIntent) API 19之前的Android。
在您的代码中使用 setRepeating而非setInexactRepeating AlarmManager.INTERVAL_DAY
以下是intervalMillis参数的区别:
setRepeating
intervalMillis以后续重复之间的间隔(以毫秒为单位) 警报。
setInexactRepeating
intervalMillis以后续重复之间的间隔(以毫秒为单位) 闹钟。在API 19之前,如果这是其中之一 INTERVAL_FIFTEEN_MINUTES,INTERVAL_HALF_HOUR,INTERVAL_HOUR, INTERVAL_HALF_DAY或INTERVAL_DAY然后报警 与其他警报相位对齐以减少唤醒次数。 否则,将设置警报,就像应用程序已调用一样 setRepeating(int,long,long,PendingIntent)。从API 19开始,全部 重复警报将是不精确的,并与其他人进行批处理 警报,无论其规定的重复间隔如何。
希望我能帮助你好运!
答案 1 :(得分:0)
只需替换此行:
calendar.set(Calendar.SECOND,20);
这一行:
calendar.set(Calendar.MINUTE,20);