当前位置: 首页 > 知识库问答 >
问题:

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

储国发
2023-03-14

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

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

有没有类似于作业调度程序的东西(例如,Android8/Oreo允许你在后台运行,但它允许你每天安排一个确切的时间)?

共有1个答案

乜清野
2023-03-14

在Android 8(奥利奥)中,警报管理器不再在后台工作

我不知道关于alarmmanager的任何东西在Android8.0中发生了变化。请随意指向文档或问题跟踪器条目来验证您的声明。或者,用一个可复制的测试用例来归档您自己的问题。

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

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

他们仍然可以提出通知,这是您的问题指示您要做的。

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

 类似资料:
  • 问题内容: 经过一些处理后,我想为用户输入设置一个cookie值,然后将其重定向到新页面。但是,cookie尚未设置。如果我注释掉重定向,则cookie设置成功。我认为这是某种形式的标题问题。在这种情况下最好的解决方法是什么? 请注意,无论哪种情况,setcookie都会返回,并且我不会收到任何错误/警告/通知。 编辑: 我正在使用Unix / Apache / MySQL / PHP 问题答案:

  • 如何将Airflow dag配置为每天在指定时间执行,无论发生什么,就像crons一样。 我知道使用 TimeSensor 可以获得类似的行为,但在这种情况下,这取决于传感器任务,并且可能与 dag 执行时间冲突。 示例:对于传感器方法,如果我让传感器在0小时15分钟运行,但如果dag在稍后执行,则我的任务会延迟,因此即使对于传感器方法,我也需要确保Dag在正确的时间执行。 那么如何确保Dag在指

  • 使用以下代码: 我得到 有没有办法从夏时制之后到1:00:00而不经过夏时制之前的1:00:00?

  • 问题内容: 这可能是一个非常基本的问题,但是我从来没有用过之前创建过的表,而且我对作为参数的内容感到困惑。例如,在这里: 我只是随机输入,但是作为参数在这里表示什么?这里应该放什么? 我用谷歌搜索了这个问题,但实际上并没有提出任何建议。。。无论如何,我是sql的新手,所以对您的帮助将不胜感激,谢谢!! 问题答案: 编辑 从MySQL 5.6.4开始,数据类型在小数秒内指定(0到6)精度的十进制数字

  • 问题内容: 在下面的示例中,我在绿色背景上绘制了一个自定义,但是它没有出现。为什么会这样? 问题答案: JComponent不会绘制其背景。您可以自己绘制,也可以使用可以绘制背景的JPanel

  • 我需要在Java中创建一个计划作业或Cron作业,以便每天早上6点运行。有没有一个简单的方法。我曾尝试将Timer类与scheduledAtFixedRate方法一起使用,但只需要一个延迟。 有一种方法可以将一天作为第一次,然后是第二次 如何创建启动计划程序的特定日期和时间? 我的类需要运行作业已经扩展了TimerWork。