AlarmManager的RTC和RTC_WAKEUP有什么区别

时间:2015-02-01 12:20:05

标签: android alarmmanager

您好我正在阅读有关AlarmManager这两个常数的Android文档,但并没有完全区分它们。

  

System.currentTimeMillis()中的RTC闹钟时间(以UTC为单位的挂钟时间)。

     

RTC_WAKEUP System.currentTimeMillis()中的闹钟时间(以UTC为单位的挂钟时间),它会在设备熄灭时唤醒设备。

当设备处于休眠模式时,RTC是否不会唤醒设备并触发PendingIntent

提前致谢。

1 个答案:

答案 0 :(得分:11)

  

当设备处于休眠模式时,RTC不会唤醒设备并触发PendingIntent吗?

RTCELAPSED_REALTIME不会将设备唤醒进入睡眠模式。如果设备在事件发生时处于睡眠模式,则不会立即发生任何事情。当设备因其他原因唤醒时(例如,用户按下电源按钮),您将收到有关错过事件的通知。

RTC_WAKEUPELAPSED_REALTIME_WAKEUP会将设备唤醒进入睡眠模式。如果您的PendingIntent是广播PendingIntent,则Android会让设备保持足够长的时间以使onReceive()完成。如果你有重要的工作,你不想在onReceive()中做(因为在主应用程序线程上调用了onReceive()),你需要安排让设备保持足够长的时间来进行某些服务你的完成工作,例如使用WakefulBroadcastReceiver