2013-05-04 7 views
1

Может ли Android пойти в глубокий сон, пока он обрабатывает трансляцию в BroadcastRceiver? Требуется ли создать частичный wakelock как можно раньше в методе BroadcastReceiver onReceive или он может быть создан где угодно в методе onReceive (и передан службе)?Android BroadcastReceiver и глубокий сон

Документация AlarmManager заявляет The Alarm Manager holds a CPU wake lock as long as the alarm receiver's onReceive() method is executing. This guarantees that the phone will not sleep until you have finished handling the broadcast. Но как насчет других передач? Или это зависит только от отправителя трансляции?

+0

Если устройство уже спит, оно может даже не проснуться, чтобы получить трансляцию: см. Http://stackoverflow.com/questions/16254420/broadcastreceiver-behavior-when-phone-is-asleep –

ответ

1

Может ли Android перейти в глубокий сон, пока он обрабатывает трансляцию в BroadcastRceiver?

Как правило, да. Одним из примечательных исключений является то, что BroadcastReceiver был вызван AlarmManager и getBroadcast()PendingIntent.

Требуется ли создать Блокировка частичного включения как можно раньше в методе BroadcastReceiver OnReceive или он может быть создан в любом месте OnReceive метода (и передается в службу)?

Ну, вы не можете передать WakeLock к службе очень легко, поэтому я написал WakefulIntentService.

А как насчет других передач? Или это зависит только от отправителя трансляции?

Я не знаю ни одного другого вещания Intent, который автоматически держит WakeLock, помимо вышеупомянутого AlarmManager сценария. Один, который мог бы был бы SMS_RECEIVED, так как входящие SMS могут также просыпаться.

+0

В моем случае это Передачи AIRPLANE_MODE из разных приложений, пытающихся контролировать его. Btw Я попытался вставить Thread.sleep() в начало вещательного приемника, и результаты удивили меня - похоже, что телефон не делал глубокий сон во время задержки ... – DavisNT

+0

Но в любом случае - я буду получать блокировку во время начала вещательного приемника если я не найду ссылок на официальную документацию на Android, в которой говорится, что широковещательные приемники, обрабатывающие трансляции, не позволяют телефону спать. – DavisNT

Смежные вопросы