保存cpu部分唤醒锁的规则非常模糊。有人可以解释我们何时以及为什么要获得一个?什么时候系统可以决定在线程上做一些工作时暂停服务?
我想了解cpu调度程序/活动/服务管理器的详细信息。
android源代码是最好的地方吗?如果是这样的包裹?
答案 0 :(得分:3)
有人可以解释我们何时以及为何要获得一个?
当您需要CPU保持运行以完成一些工作时,您将获得一个。完成该工作后即可将其释放。
因此,例如,假设您IntentService
触发了AlarmManager
。您希望IntentService
检查您的电子邮件客户端的新电子邮件。您可能希望获得WakeLock
,以便CPU在您执行此操作时不会入睡,然后确保您将其释放。这种模式是我创建WakefulIntentService
。
系统什么时候可以在线程上做一些工作时决定暂停服务?
你正在做“在线程上做一些工作”这一事实并不重要。 CPU将根据用户不活动而入睡。如果用户未将设备保持唤醒状态,并且您没有使用WakeLock
保持设备唤醒,则设备将处于睡眠状态。
CPU处于睡眠状态对于功耗非常重要。如果你决定要让CPU保持24x7全天候运行,电池会相对较快地运转。