AlarmManager 的 setInexactRepeating() 到底有多不精确?

问题描述 投票:0回答:2

我知道这个问题之前已经被问过,这里,但给出的答案是指文档,这实际上是非常模糊的。它说不精确的警报可能会在指定时间之后几乎“完整的时间间隔”发生。对于间隔一整天的闹钟来说,这似乎有点过分了。

文档确实说here(在“RTC 示例”下)您可以对每日闹钟使用不精确重复,并给出了为“大约下午 2 点”设置不精确闹钟的示例。头脑清醒的人不会认为“大约下午 2 点”可能意味着第二天下午 1 点,因此每日闹钟似乎不太可能至少在指定时间之后“几乎整个间隔”。

有没有关于每日间隔的不准确警报可能晚到多长时间的明确信息?谢谢。

(我知道 API 19 有“setWindow”,但我希望我的应用程序也能在较旧的 API 上运行)。

android alarmmanager
2个回答
7
投票

我用 5 个连续警报对此进行了测试,在我的手机上,平均延迟为 11.8 分钟。这是将重复之间的间隔设置为 INTERVAL_DAY。


0
投票

请阅读此处:

https://developer.android.com/develop/background-work/services/alarms/schedule#inexact-after-specific-time

在Android 12(API级别31)及更高版本上,系统调用警报 在提供的触发时间的一小时内,除非有任何 节电限制有效,例如节电器或 打瞌睡。

所以这意味着,如果您将其设置为从现在起 10 分钟,那么从现在起可能会达到 1:10 小时,在特殊限制下甚至可能会更长...

© www.soinside.com 2019 - 2024. All rights reserved.