Когда служба будет переведена в спящий режим? - PullRequest
2 голосов
/ 30 августа 2011

Правила хранения частичных следов процессора очень расплывчаты.Может кто-нибудь объяснить, когда и почему мы должны его приобрести?Когда система может решить, что служба должна быть приостановлена ​​во время выполнения какой-либо работы с потоком?

Я хотел бы понять детали планировщика процессора / менеджера операций / службы.разместить исходный код андроида?если да, то какой пакет?

1 Ответ

3 голосов
/ 31 августа 2011

Может кто-нибудь объяснить, когда и почему мы должны его приобрести?

Вы приобретаете его, когда вам нужно, чтобы ЦП продолжал работать, чтобы выполнить некоторую часть работы.Вы отпускаете его, когда эта работа завершена.

Так, например, предположим, что у вас IntentService сработало на AlarmManager.Вы хотите, чтобы IntentService проверял наличие новых почтовых сообщений для вашего почтового клиента.Вы хотели бы приобрести WakeLock, чтобы процессор не уснул, пока вы занимаетесь этим, а затем убедитесь, что вы его отпустите.Именно по этой схеме я создал WakefulIntentService.

Когда система может решить, что служба должна быть приостановлена ​​при выполнении некоторой работы с потоком?

Тот факт, что вы выполняете «некоторую работу с потоком», не имеет значения.Процессор засыпает из-за пользовательской неактивности.Если пользователь не держит устройство в активном состоянии, а вы не поддерживаете его в состоянии сна с WakeLock, устройство будет засыпать.

Наличие засыпания ЦП очень важно для энергопотребления.Если, скажем, вы решите, что процессор будет работать круглосуточно, батарея разряжается относительно быстро.

...