Проблема с темой после SCREEN_OFF в Android - PullRequest
1 голос
/ 13 июня 2010

Я делаю приложение, которое прослушивает android.intent.action.SCREEN_OFF в Сервисе (если это имеет значение), а затем должно подождать несколько секунд и запустить действие, я пробовал расписание таймераметод, поток и метод postDelay обработчика, но все они, похоже, не работают, они никогда не выполняются на устройстве, кажется, что он завис или убит после блокировки телефона.Он работает на эмуляторе и на устройстве, подключенном к USB, но никогда не работает на устройстве, работающем только от батареи, что на самом деле является основным сценарием.

Знаете ли вы какие-либо решения для этого?

Ответы [ 3 ]

0 голосов
/ 13 июня 2010

Я не могу проверить это сейчас (не рядом с моим устройством Android в данный момент), но ...

Приемник вещания вообще срабатывает?

Если это так, то при вызове вам нужно будет захватить частичную Wake Lock , чтобы процессор не спал, пока не сработает таймер.

0 голосов
/ 15 июня 2010

Частичная активная блокировка поддерживает работу процессора, поэтому вы должны получить его в приемнике вещания для screen_off и отпустить после того, как вы закончите с тем, что вы делаете.Когда вы подключены к USB, процессор остается включенным для обслуживания USB-соединения (на самом деле, USB-содержимое в ядре имеет свою собственную блокировку пробуждения).

И чтобы ответить на другой вопрос, да,даже фоновые темы.Как только все завершат обработку широковещания screen_off, процессор выключится, и вы не сможете снова работать, пока кто-нибудь не включит процессор.

0 голосов
/ 13 июня 2010

Скорее всего, ваш телефон настроен так, что когда он подключен, он фактически никогда не блокируется или не спит (это одна из настроек разработчика), и представьте, что эмулятор ведет себя так же. поэтому вам придется либо переопределить настройки блокировки телефона, либо изменить свой метод. общее правило: когда экран отключается, ваша деятельность заканчивается.

...