我有一个服务,我想在我的应用程序中每天执行。该服务应该每天只执行一次。由于某种原因,我的服务被解雇了好几天,我不知道是怎么回事。这是我的警报器:
PendingIntent pendingIntent = PendingIntent.getBroadcast(this,0,new Intent(this,ReviewReceiver.class),PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager)(this.getSystemService(Context.ALARM_SERVICE));
Random random = new Random();
int hour = random.nextInt(22 - 7) + 7;
int minute = random.nextInt(60 - 1) + 1;
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE,minute);
cal.set(Calendar.SECOND,5);
cal.set(Calendar.MILLISECOND,5);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),AlarmManager.INTERVAL_DAY,
pendingIntent );我已将警报设置为在安装应用程序后的上午7点至晚上10点之间随机设置。
例如,当警报器设置在13时30分时,服务就会正常启动。但在那之后,它会在一天中以随机的间隔被一次又一次的发射。我做错什么了。请帮帮忙。
我已经试过使用ELAPSED_TIME, ELAPSED_TIME_WAKEUP了,但是它们不起作用
发布于 2015-09-17 14:07:03
对于棒棒糖和更大的(M预览也有这种行为),警报有一个奇怪的行为,如果你不设置它在未来,并至少添加5s。
alarmManager.setInexactRepeating(
AlarmManager.RTC_WAKEUP,
now + 5s,
AlarmManager.INTERVAL_DAY,
pendingIntent );5s是一个众所周知的问题。,由于这个问题发生了(特别是我的附件5),我只是使用set(),而不是setInexactRepeating(),每天进行一次回忆。
https://stackoverflow.com/questions/32631840
复制相似问题