【问题标题】:Alarm manager isn't working correctly on android version above 8警报管理器在 8 以上的 android 版本上无法正常工作
【发布时间】:2020-12-20 14:02:49
【问题描述】:

在我的应用中,我使用闹钟管理器进行时间安排。为此,我使用了 Alarm Manager API

  • 我正在使用 setInExactRepeating() 方法重复我的闹钟,但是当我的设备处于空闲状态时它不会触发我的闹钟。有时也会延迟触发警报。
  • 对于我的应用来说,在重复模式和空闲状态下在准确的时间触发警报很重要。

请帮助我如何解决这个问题,我也了解了 Job schedulerWork manager 但这些没有像警报管理器这样的功能来准确设置警报或重复。

谢谢

【问题讨论】:

标签: android kotlin alarmmanager


【解决方案1】:

您可能无法对重复执行任何操作,因为在更高版本的 android 上存在重复限制(我认为 15m)以获得更好的性能和电池节省,而更高版本的 android 上的警报管理器并不是最好的。

即使您设法这样做并制作了您的应用程序,它也可能会被性能控制器应用程序甚至 android 操作系统本身杀死。因此,我不建议您为此投入时间。

有一些技巧可以欺骗 android 操作系统并让您的应用程序运行,但我认为编写这样的代码会很麻烦。最好的工作是和你说的一样的 WorkManager

【讨论】:

  • 但是工作管理器没有报警管理器这样的功能,我该如何替换。你有什么想法请建议@ErfanDP
  • 实际上,工作管理器使用的是警报管理器使用的东西,它有点像包装类,但是有一些限制不能破坏你想使用的警报管理器的女巫功能?
  • 我想使用调度功能。让我先解释一下,在我的应用程序中有一个类似时间表的功能,用户可以选择一个特定的时间,那时警报应该触发并通知它也将是周期性的,并且在警报管理器中我正在使用广播接收器。所以你能建议我如何与工作经理@ErfanDP 做同样的事情
  • 我认为可以通过工作经理medium.com/@pmaggi 完成这项工作,先看看工作经理的 android 文档,更熟悉工作经理,然后转到我发给他的这个链接有 4 篇我认为对你有帮助的文章
  • @ErfanDP 但是你不能使用WorkManager 来(我引用):“准确设置警报或重复”。工作管理器调度程序将决定您的工作是否可以“在您说需要时”运行,或者其他因素(电池/打盹模式等)是否应该将您的工作推迟到以后。除非 WM 在过去几年发生了变化,否则一直都是这样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多