如何调试 AlarmManager 激活的服务
How to debug an AlarmManager-activated service
我正在实施一个小部件,它根据一天中的时间检查每分钟和每小时之间的在线火车出发时间。
使用
调用服务
manager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() - 10000, 60000, pendingIntent)
工作正常,但为了调试,我想将间隔减少到大约 10 秒,但由于 Android 的较新版本中有 1 分钟的限制,因此无法做到这一点。显然,我不关心模拟器的电池寿命。
据我了解,使用 Hander/Timer 不是一种选择,因为它要求任务位于前台。是一个可见的小部件 "in the forground"?
在这种情况下推荐的做法是什么?
你实际上必须完成任务
- 将 alarmmanager 配置为 add/remove 通过 intents 触发事件
- 用服务中的意图解释事件
如果将两者分开,您可以轻松创建一个非常简单的 gui/activity,它的功能与 alarmmanager 在被触发时的功能相同,并且您可以进行调试:
* onSendButtonClick: create and send pendingIntent
对于 alarmmanager 处理,我将在每次 alarmmanager 为 added/removed/triggered 时实现登录到文本文件。
请做好准备,较新的 android 版本可能会推迟 alarmmanager 事件以节省能源,直到设备已经处于活动状态,并且小于 15 分钟的间隔可能不起作用。
您可能还需要on_boot_complete 在设备关闭后重新配置 alarmmanager
我正在实施一个小部件,它根据一天中的时间检查每分钟和每小时之间的在线火车出发时间。 使用
调用服务 manager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() - 10000, 60000, pendingIntent)
工作正常,但为了调试,我想将间隔减少到大约 10 秒,但由于 Android 的较新版本中有 1 分钟的限制,因此无法做到这一点。显然,我不关心模拟器的电池寿命。
据我了解,使用 Hander/Timer 不是一种选择,因为它要求任务位于前台。是一个可见的小部件 "in the forground"? 在这种情况下推荐的做法是什么?
你实际上必须完成任务
- 将 alarmmanager 配置为 add/remove 通过 intents 触发事件
- 用服务中的意图解释事件
如果将两者分开,您可以轻松创建一个非常简单的 gui/activity,它的功能与 alarmmanager 在被触发时的功能相同,并且您可以进行调试:
* onSendButtonClick: create and send pendingIntent
对于 alarmmanager 处理,我将在每次 alarmmanager 为 added/removed/triggered 时实现登录到文本文件。
请做好准备,较新的 android 版本可能会推迟 alarmmanager 事件以节省能源,直到设备已经处于活动状态,并且小于 15 分钟的间隔可能不起作用。
您可能还需要on_boot_complete 在设备关闭后重新配置 alarmmanager