首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android Oreo中替换在后台工作的AlarmManager,同时仍然设置特定的时间?

如何在Android Oreo中替换在后台工作的AlarmManager,同时仍然设置特定的时间?
EN

Stack Overflow用户
提问于 2017-10-25 10:42:52
回答 2查看 1.1K关注 0票数 5

简而言之:闹钟管理器在Android 8 (Oreo)中不再在后台工作,Android人们说可以使用Job Scheduler作为替代,但作业调度器不允许一天中的特定时间,就像Alarm Manager做得很好。

更长的版本:我有一个“提醒”通知,它会在用户设置的特定时间发出。到目前为止,我已经使用了一个警报管理器在设定的时间发布通知。这将向用户发送通知,即使应用程序在后台也是如此。但在Android Oreo / 8.0中,这是不允许的。大多数后台服务、接收器等都相当有限。我已经设置了一个作业调度程序,但是不允许一个确切的时间。作业计划程序中的定期设置不能提前设置为特定时间。因此,尽管Android声称作业调度程序是闹钟管理器的预期替代品,但它似乎并不是人们使用它的关键功能之一,而是在一天中的特定时间进行设置。有没有人知道在Android Oreo中实现这一点的方法,即使应用程序在后台也能正常工作?

我尝试过同步适配器(也需要警报管理器!),处理程序(在特定时间内什么都没有),尝试作业服务的不同设置(周期,minimumLatency等),在最后一个完成后重置通知(也不能在后台做这些!),但仍然没有找到有效的解决方案。

有没有像作业调度程序那样工作的东西(比如,Android8/Oreo允许你在后台运行,但它让你每天安排一个确切的时间?

EN

回答 2

Stack Overflow用户

发布于 2017-10-25 18:29:53

在安卓8中,

报警管理器不再在后台工作。

我不知道AlarmManager在Android8.0中有什么变化。请随时指向文档或问题跟踪器条目来验证您的声明。或者,使用可重现的测试用例提交您自己的问题。

但是在Android Oreo / 8.0中,这是不允许的。

当然是这样,至少在安卓6.0到7.1中也是如此。打瞌睡模式和应用待机已经影响了AlarmManager,但这在Android8.0中并不新鲜。

大多数后台服务、接收器等都是相当有限的。

他们仍然可以提出Notification,这是您的问题表明您想要做的事情。

有没有人知道一种在Android Oreo中做到这一点的方法,即使应用程序在后台也能正常工作?

使用AlarmManager。因为您正在编写一个相当于闹钟应用程序的东西,use setAlarmClock()

票数 0
EN

Stack Overflow用户

发布于 2018-11-01 13:12:59

我可以建议的一个解决方案可能是解决你的问题。您应该启动作业调度15分钟中继器模式,并调用每分钟一次广播,您可以检查此当前时间是否为您一天中的特定时间。如果是,则发送通知。

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

https://stackoverflow.com/questions/46923096

复制
相关文章

相似问题

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