Я получаю сообщения о том, что мое приложение разряжает батарею, но только в HTC Incredible - PullRequest
0 голосов
/ 24 мая 2010

Кто-нибудь еще заметил поведение, характерное для HTC Incredible, которое может привести к тому, что приложение будет держать устройство включенным и занятым? Я получал сообщения о том, что мое приложение отвечает за поддержание устройства в состоянии сна и разрядку аккумулятора, но только от пользователей HTC Incredible.

Мое приложение реагирует на ряд Intents, которые могут быть связаны. У него есть служба, которая запускается при загрузке, а также реагирует на изменения сетевого подключения. Я использую WakeLock, но я осторожен, чтобы выпустить его, когда я закончу обработку, и WakeLock истекает через пару минут, независимо от того, закончил я или нет.

Я слышал, что у Невероятного могут быть проблемы с подключением, или что некоторые из них имеют. Может ли быть так, что сеть часто работает вверх и вниз, вызывая мое приложение?

Есть еще идеи? Я попросил пользователя прислать мне свои логи с помощью aLogCat. Если они захотят, это может помочь сузить причину.

Ответы [ 2 ]

1 голос
/ 24 мая 2010

Проблема, казалось, заключалась в том, что я получал очень быстрое изменение подключения к сети Intents. Гораздо больше, чем я когда-либо видел с моим Droid. Я думаю, что мне придется установить временную сигнализацию об изменениях сетевого подключения, чтобы я пытался обрабатывать только тогда, когда сеть была стабильной в течение определенного периода времени.

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

Я исправил последнюю проблему, а пока я отключил Intents для моего статуса, так как они не являются критическими.

1 голос
/ 24 мая 2010

Если сеть часто меняется, у вас будет много работы.
Вы закрываете свой сервис? Работает ли ваш сервис в рабочем потоке (по умолчанию это не так). Вам нужно реагировать на изменения в сети, когда устройство спит? Кстати - работает при загрузке - у вас, вероятно, будет второй запуск после загрузки, как только радиоприемники подключатся к сети. Поместите несколько логов и посмотрите, сколько раз вы действительно запускались после перезагрузки.

...