在Android上使用RTC闹钟时让手机进入睡眠状态

smi*_*324 6 android alarmmanager

我一直在使用Android中的警报管理器看到一些奇怪的问题,尽管事实上我正在使用RTC(非唤醒)手机将以正确的重复间隔可靠地发送PendingIntents.

我的测试详情

  • 设备没有充电,只是在我睡觉时坐在我的床头柜上
  • 我的服务在重复间隔(30分钟,我知道极端)的每个时间醒来
  • 该服务将其活动记录在一个文件中,以便我可以在早上阅读它

现在根据我的理解,手机应该睡觉,除非我将其唤醒,并且在手机醒来之前不应发送我的警报.

  • 为什么我的服务正在执行?
  • 如果另一个服务行为不端并使用警报的_WAKEUP变体,我的服务也会唤醒吗?
  • 我可以避免被其他服务唤醒,只是从用户打开屏幕唤醒?

Com*_*are 4

为什么我的服务正在执行?

据推测,当时有其他东西让设备处于唤醒状态。

如果另一个服务行为不当并使用警报的 _WAKEUP 变体,我的服务也会被唤醒吗?

是的,尽管“行为不当”是情人眼里出西施。

我可以避免被其他服务唤醒,并且只是被用户打开屏幕唤醒吗?

不是直接通过AlarmManager. 您可以观看ACTION_SCREEN_OFFACTION_USER_PRESENT广播,也许还可以在这些广播之间禁用闹钟。