我在Android中使用Alarm Manager时遇到了一些奇怪的问题,尽管我使用的是RTC(非Wakeup)模式,但手机仍会可靠地按正确的重复间隔发送PendingIntent。
我的测试细节如下:
- 设备未充电,在我睡觉时放在床头柜上
- 每次服务都会在其重复间隔(30分钟,我知道这很极端)唤醒
- 服务记录了它的活动情况,以便我早上可以阅读
据我所知,除非我将其唤醒,否则手机应该处于休眠状态,我的闹钟也不应在手机唤醒之前发送。
- 为什么我的服务还在执行?
- 如果其他服务行为不当并使用了alarm的_WAKEUP变体,我的服务也会被唤醒吗?
- 我能避免被其他服务唤醒,只是在用户打开屏幕时唤醒吗?
IntentService
不是设计成“长期存在”的。 - CommonsWareKeyguardManager
上的inKeyguardRestrictedInputMode()
。 - CommonsWare