Разряд батареи при прослушивании обновлений сетевого местоположения - PullRequest
0 голосов
/ 19 июля 2011

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

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 120000, 3000F, this);

Мой onLocationChanged() метод делает очень простые вещи (просто вычисляет расстояние до предварительно сконфигурированного местоположения, используя Location.distanceTo():

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

Процессор не так уж и плох, но часть "Stay Awake" очень высокая.

Есть ли способ предотвратить это?

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

Кроме того, я подумал определить, когда устройство находится в движении, но, скорее всего, это будет еще больший убийца.

1 Ответ

0 голосов
/ 19 июля 2011

Я думаю, что вы ответили на свой вопрос.

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

Это был бы лучший подход.Но не устанавливайте его на две минуты, установите интервалы в 10 минут.

...