我可以观察到我的设备不会休眠,因为闹钟持有部分唤醒锁,但我不知道如何找到代表哪个闹钟持有唤醒锁的应用程序。
发布于 2015-08-24 18:54:46
AlarmManager提供对系统报警服务的访问。它们允许您安排应用程序在将来的某个时候运行。当警报响起时,系统将广播已为其注册的意图,如果目标应用程序尚未运行,则自动启动目标应用程序。设备处于休眠状态时会保留已注册的告警(如果设备在此期间关闭,还可以选择唤醒设备),但如果设备关闭并重新启动,则会将其清除。只要报警接收器的onReceive()方法正在执行,报警管理器就会保持一个CPU唤醒锁。这可以保证电话在您处理完广播之前不会休眠。一旦onReceive()返回,报警管理器就会释放此唤醒锁定。这意味着在某些情况下,只要onReceive()方法完成,电话就会休眠。更多细节
https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/AlarmManager
发布于 2015-08-24 19:27:27
你也可以看看battery-historian。这是一个非常有用的工具,用于查找未释放的wakelock和记录电池历史记录。
https://stackoverflow.com/questions/32179764
复制相似问题