Блокировка экрана Android / автомобильное зарядное устройство убивает мою нить - PullRequest
0 голосов
/ 11 сентября 2010

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

Когда телефон подключен к моему ноутбуку (включена отладка по USB и т. Д.), Эта функция работает нормально. Телефон переходит в режим полета, экран блокируется, а затем через определенное количество минут приложение «просыпается» и продолжает работать как обычно.

Когда телефон подключен к автомобильному зарядному устройству, телефон переходит в режим полета, но телефон никогда не просыпается. Эта проблема возникает только в том случае, если экран также настроен на тайм-аут ... когда я установил экран на "никогда не выходить" и подключил телефон к автомобильному зарядному устройству, приложение просто просыпается.

Похоже, что некоторая комбинация источника питания и тайм-аута экрана убивает мой поток энергосбережения на системном уровне. Я знаю, что этот пост очень специфичен для моего приложения, но кто-нибудь сталкивался с подобной проблемой раньше?

1 Ответ

1 голос
/ 11 сентября 2010

Если вы хотите подождать n минут, вам нужно использовать сигнал тревоги, а не поток. Вы никогда не можете предполагать, что поток остается активным, пока ваше приложение не находится на переднем плане. Проверить http://developer.android.com/reference/android/app/AlarmManager.html.

...