服务什么时候才能入睡?

时间:2011-08-30 19:53:11

标签: android service sleep

保存cpu部分唤醒锁的规则非常模糊。有人可以解释我们何时以及为什么要获得一个?什么时候系统可以决定在线程上做一些工作时暂停服务?

我想了解cpu调度程序/活动/服务管理器的详细信息。

android源代码是最好的地方吗?如果是这样的包裹?

1 个答案:

答案 0 :(得分:3)

  

有人可以解释我们何时以及为何要获得一个?

当您需要CPU保持运行以完成一些工作时,您将获得一个。完成该工作后即可将其释放。

因此,例如,假设您IntentService触发了AlarmManager。您希望IntentService检查您的电子邮件客户端的新电子邮件。您可能希望获得WakeLock,以便CPU在您执行此操作时不会入睡,然后确保您将其释放。这种模式是我创建WakefulIntentService

的原因
  

系统什么时候可以在线程上做一些工作时决定暂停服务?

你正在做“在线程上做一些工作”这一事实并不重要。 CPU将根据用户不活动而入睡。如果用户未将设备保持唤醒状态,并且您没有使用WakeLock保持设备唤醒,则设备将处于睡眠状态。

CPU处于睡眠状态对于功耗非常重要。如果你决定要让CPU保持24x7全天候运行,电池会相对较快地运转。