当电话唤醒时未传送的AlarmManager重复警报会发生什么?

时间:2012-08-27 11:06:36

标签: android alarmmanager

例如,如果我们计划每小时触发AlarmManager.setInexactRepeating不准确的重复闹钟,如果手机处于待机状态4小时然后它被唤醒会发生什么?系统是否为同一PendingIntent连续发送4个警报,或者只发送一个警报?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

这取决于你是否使用 等待这样的意图

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

它不会触发4次,因为它会取消之前的未决意图