【问题标题】:AlarmManager does not work in the same way on every tested deviceAlarmManager 在每个测试设备上的工作方式不同
【发布时间】:2016-07-07 09:34:20
【问题描述】:

我目前正在开发一个应用程序,该应用程序需要同时触发多个警报。

为此,我创建了一个接收器来安排下一个警报。 我还创建了一个压力测试:

alarmManager 呼叫我的接收器,它会在下一分钟创建另一个警报。 在 xx:30 和 xx:00,我收到一封邮件,其中包含所有警报的日志,其中包含预期日期和触发日期。

在我的手机上一切正常,三星 Galaxy Note 3 lite。 遗憾的是,所有设备上的行为都不相同。

  • 华为荣耀:我昨天下午6点启动,一直工作到下午6点16分,下午6点45分重启,晚上7点完全停止。

  • OnePlus 2:目前正在工作,但未触发一些通知,大约 20%...这对我的需要来说已经很多了...

所以我想知道,如果某些设备有一个警报管理器,当它滥用系统时会停止一些警报。不幸的是,我没有找到足够的 Doc 来支持这个理论。 你有没有遇到过这样的问题,你是怎么解决的? 如何制作一个能够在正确的时间以 > 95% 的成功率发送通知的系统?

【问题讨论】:

    标签: android notifications alarmmanager


    【解决方案1】:

    我遇到了同样的问题,经过大量搜索和解决方法后,我认为 Lollipop 及更高版本的三星设备智能管理器可能是问题所在。该组件可以延迟警报管理器关闭,如果手机正在使用电池并且屏幕关闭,则它会在 3 分钟后触发。当然,您可以像这样停用智能管理器:

    • 在设备上启动 Samsung Smart Manager 应用程序
    • 点击电池
    • 点击应用优化
    • 详情
    • 查找您的应用程序
    • 选择“禁用”

    但在我的情况下,它不起作用,禁用智能管理器在 2 台带有 Lollipop 的三星设备中也不起作用。它所做的工作是通过重构我的应用程序包的名称以包含字符串“alert”或“alarm”来“欺骗”智能管理器,例如 com.example.alarm.myApplication。您也可以参考此链接了解更多信息。

    华为等其他一些公司也有自己的优化应用程序,可以延迟AlarmManager。 此外,新组件 Android Doze 可能会延迟 AlarmManager 请参考此link。 最后,您的手机运行良好,因为它低于Lollipop,并且不包含三星的 SmartManager。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多