5

例如,如果我们安排一个不精确的重复警报AlarmManager.setInexactRepeating每隔一小时触发一次,如果手机待机 4 小时然后被唤醒,会发生什么情况?系统是连续发出 4 个警报PendingIntent还是只发出一个警报?

编辑:更加注意阅读文档,set(int, long, android.app.PendingIntent)方法文档说:警报意图交付时带有一个称为 int 类型的额外数据,该数据Intent.EXTRA_ALARM_COUNT表明有多少过去的警报事件已累积到此意图广播中。由于手机处于睡眠状态而导致未发送的重复警报在发送时的计数可能大于 1。 因此,当手机退出待机状态时,只会发送一个警报,其中包含未接警报的数量的额外意图。

4

2 回答 2

1

仔细阅读文档,set(int, long, android.app.PendingIntent)方法文档说:警报意图交付时带有一个称为 int 类型的额外数据,该数据Intent.EXTRA_ALARM_COUNT表明有多少过去的警报事件已累积到此意图广播中。由于手机处于睡眠状态而导致未发送的重复警报在发送时的计数可能大于 1。 因此,当手机脱离待机状态时,只会发送一个警报,其中包含未接警报的数量。

于 2012-08-27T14:03:39.973 回答
0

这取决于您是否使用这样的待处理意图

  PendingIntent pending = PendingIntent.getBroadcast(context, 0, i,
            PendingIntent.FLAG_CANCEL_CURRENT);

它不会触发 4 次,因为它取消了先前的待处理意图

于 2012-08-27T11:11:09.927 回答