【发布时间】:2015-02-26 12:46:21
【问题描述】:
我正在努力正确设置警报,并了解取消和重新安排警报的机制。
我发现,有一个 adb 命令可以检索设备上安排的所有警报,但我没有找到解释输出格式的文档。
我明白,我在这里问了很多解释,所以如果有人能提供关于“adb shell dumpsys alarm”的详细解释的链接,我将不胜感激。
所以,这里有问题:
-
待处理的报警批次:23
一个。 “23”是当前活动的预定警报的数量吗?
-
批次{4293d3a8 数量=1 开始=1369361 结束=1407261}:
RTC #0:警报{4293d358 type 1 com.android.chrome}
type=1 whenElapsed=1369361 when=+19s304ms window=-1 repeatInterval=0 count=0
操作=PendingIntent{429e4500: PendingIntentRecord{429dbbc8 com.android.chrome broadcastIntent}}一个。什么是“num=1”、“start=1369361”和“end=1407261”?
湾。我认为“RTC”代表 RTC 警报。
C。 “#0”代表什么?
d。 “类型=1”是什么意思?
e. 'when=+19s304ms' 是否意味着警报将在 19 秒内触发?
F。 “窗口=-1”是什么意思?
G。 'repeatInterval=0' 是否意味着这是非重复警报?
H。 'count=0' 是否意味着由于手机睡眠状态而没有推迟此警报?
一世。 'operation=PendingIntent{...}' 代表待处理的意图,我认为这将由警报触发。 -
广播参考数:0
一个。这是什么?
-
热门警报:
一个。这是什么?
-
+47s271ms 运行,0 次唤醒,2 次警报:com.username.weatherinfo
act=com.username.receivers.CyclicWeatherUpdater.WEATHER_UPDATE_ACTION
cmp={com.username.weatherinfo/com.username.receivers.CyclicWeatherUpdater}一个。 '+47s271ms' 是否意味着此警报将在 47 秒内触发?
湾。什么是“0 次唤醒” - 从未触发警报?
C。什么是“2 个警报”?
d。 'com.username.weatherinfo' 是否代表包的名称,在上下文字段中被赋予待处理的意图?
e. “行动”是指为意图而发送的行动吗?
F。什么是'cmp'?我明白了,它是由包名和类名组成的——但是它们是从哪里获取的呢?从意图构造函数? G。为什么部分警报只有“act”或只有“cmp”?我假设没有“cmp”字段的警报用于隐式广播意图。然而,为什么会有没有'act'字段的警报? -
报警统计:
一个。这是什么?
【问题讨论】:
-
假设您可能已经阅读了 AlarmManager 的 API 文档,我下一步可能会阅读一些相关的 AOSP 源代码:android.googlesource.com/platform/frameworks/base/+/…(这是奇巧,它似乎已经移动或更改了自)
-
@ChrisStratton - 如果他阅读了 AlarmManager 文档 - 他不会问一半的问题。而在 Lollipop 中,“核心服务”已被移至
core子文件夹 - android.googlesource.com/platform/frameworks/base/+/master/… -
@Alex P. 其他人没有给出毫无意义的建议,而是给了我一个答案,我问的六个问题中至少有一个问题可以在 API 中找到AlarmManager 的文档。这对您来说应该很容易,因为根据您的评论,那里至少有三个答案。
标签: android adb alarmmanager