首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Alarmmanager

Android Alarmmanager
EN

Stack Overflow用户
提问于 2015-09-17 13:41:48
回答 1查看 235关注 0票数 0

我有一个服务,我想在我的应用程序中每天执行。该服务应该每天只执行一次。由于某种原因,我的服务被解雇了好几天,我不知道是怎么回事。这是我的警报器:

代码语言:javascript
复制
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了,但是它们不起作用

EN

回答 1

Stack Overflow用户

发布于 2015-09-17 14:07:03

对于棒棒糖和更大的(M预览也有这种行为),警报有一个奇怪的行为,如果你不设置它在未来,并至少添加5s。

代码语言:javascript
复制
alarmManager.setInexactRepeating(
    AlarmManager.RTC_WAKEUP,
    now + 5s,
    AlarmManager.INTERVAL_DAY,
    pendingIntent );

5s是一个众所周知的问题。,由于这个问题发生了(特别是我的附件5),我只是使用set(),而不是setInexactRepeating(),每天进行一次回忆。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32631840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档