我在Android上注意到Alarms的奇怪之处 - 它们并不总是以正确的间隔唤醒设备.例如,如果我设置闹钟每隔5分钟启动一次服务(使用RTC_WAKEUP或类似功能),一切正常,直到设备进入休眠状态 - 之后,警报可能不会触发几分钟或接近一小时.它通常最终会触发 - 如果我通过按Menu唤醒设备,它总会触发.使用重复警报(每次重新设置它们)具有相同的效果.
所以我的问题是,当设备处于睡眠状态时,警报是否保证以适当的间隔发射?我明白我不应该期望毫秒或秒精度,但是几十分钟?
我从来没有在Android上编程,但我有点无聊,所以我搜索了一下,发现这个,这似乎是非常相关的:http://groups.google.com/group/android-developers/browse_thread/thread/f0303a539de3a74a(你我需要登录你的谷歌帐户才能阅读它
我再看一下AlarmManager文档,我注意到它只讨论使用警报来广播事件,而不是启动服务.我更改了使用BroadcastReceiver而不是在其onReceive()中获取锁定并将锁定引用存储为另一个类的静态成员,遵循AlarmClock应用程序的示例:https: //android.googlesource.com/platform /封装/应用/ AlarmClock的
这似乎有效.我想发生的事情是我的服务启动警报被触发,但设备有时会在我获得唤醒锁之前重新进入睡眠状态.显然,收到警报时唯一的保证是onReceive将运行完成.
我以为我会发布这个以防万一有人在寻找同样的问题.
| 归档时间: |
|
| 查看次数: |
2213 次 |
| 最近记录: |