【问题标题】:Neither setAndAllowWhileIdle() nor setExactAndAllowWhileIdle() once per 15 minutes per app. what to do for alarm for every minute每个应用每 15 分钟一次 setAndAllowWhileIdle() 和 setExactAndAllowWhileIdle() 一次。每分钟报警怎么办
【发布时间】:2019-12-18 02:19:24
【问题描述】:

setAndAllowWhileIdle() 和 setExactAndAllowWhileIdle() 都不能在每个应用每 15 分钟内触发一次以上的警报。我希望我的警报管理器每分钟更新一次本地日志。我已经尝试过提到的两个警报管理器,但它们都不起作用,因为它们会在几个小时后自动停止。请帮助我如何实现。

【问题讨论】:

  • 我正在使用 AlarmManager.setExactAndAllowWhileIdle() 在 5 秒内发出警报(然后在 5 秒后自行安排)并且它工作可靠。我只在一部手机上测试了几个小时——所以不确定它是如何概括的——但它看起来很有希望。比 setRepeating 要好得多 - 当我拔掉电话时它完全关闭了。
  • 电池优化白名单为我完成了这项工作。它每 5 秒工作一次。前台通知也可能起到作用。

标签: android alarmmanager repeat


【解决方案1】:

您可以使用Foreground service 和处理程序每​​分钟运行您的任务。您不能使用 AlarmManager 或 WorkManager,因为它们的最小间隔是 15 分钟。

【讨论】:

  • AlarmManager.setExact()AlarmManager.setExactAndAllowWhileIdle() 不适合这个确切的用例吗?文档说,“......有新的 API 来支持需要严格交付保证的应用程序;请参阅...... setExact()......”
  • 不,您可以在 setExactAndAllowWhileIdle 文档中看到它“在低功耗空闲模式下,此持续时间可能会明显更长,例如 15 分钟。”。
  • 好的,这是有道理的:最小间隔可以长达 15分钟如果你滥用API足够频繁触发限制逻辑,正如 OP 可能正在做的那样。
  • @bracadabra thnx 但该应用程序的主要目的是像幽灵一样工作。前台服务会留下通知是否有任何其他解决方法请
  • @bracadabra 但即使我们在 1 分钟后发出警报,警报应用程序也能正常工作。与 WhatsApp 相同,它是如何工作的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 2017-05-09
  • 2019-06-09
  • 2021-06-19
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多