gpt4 book ai didi

Android AlarmManager 每 "round"10 分钟触发一次

转载 作者:IT老高 更新时间:2023-10-28 23:07:08 25 4
gpt4 key购买 nike

我在我的应用程序中使用 AlarmManager 如下:

alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), AlarmManager.INTERVAL_HALF_DAY, intent);

我希望在每次触发后 12 到 24 小时内触发警报。但是,HTC 设备上的行为非常奇怪:

每次触发警报时,我们都会向我们的服务器发送一个 HTTP 请求。在所有设备上,我们看到随着时间的推移均匀地向服务器发出请求,但在 HTC 设备上,每“轮”10 分钟就会出现一次峰值(XX:10, XX:20, ...): enter image description here

这些尖峰的原因可能是什么?为什么它只会出现在 HTC 设备上?

最佳答案

我们看不到您的其余代码,但是您是否取消了之前的 Intent ,如下所示:

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(context, TimeAlarm.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT);

alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), AlarmManager.INTERVAL_HALF_DAY, pendingIntent);

否则可能是HTC对AlarmManager的管理不好,试试这些不同的调查(这可能看起来很荒谬,但最好挑战每个项目):

  • System.currentTimeMillis() 而不是单独的 System.currentTimeMillis() 添加一点延迟
  • 使用值 43200000(常量值)而不是 AlarmManager.INTERVAL_HALF_DAY
  • 试试 this日历
  • 尝试setInexactRepeating
  • 的其他参数

我没有发现任何关于这个主题的已知和列出的错误。如果你的调查没有给出任何结果,你可能什么也做不了。在这种情况下,您只需为 HTC 设置一个不以这种方式使用 AlarmManager 的解决方法。

关于Android AlarmManager 每 "round"10 分钟触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43574045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com