Подтвердить что ты не робот

Android. При использовании LocationManager.requestLocationUpdates мне нужен WakeLock?

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

Если я выпущу wakelock после вызова requestLocationUpdates, может ли устройство переспать и не вызвать мой LocationListener, или устройство всегда проснется, чтобы доставлять обновления и бодрствовать до тех пор, пока обратный вызов не вернется? Я неохотно держусь за wakelock, потому что это помешает устройству спать между обновлениями, пока я не покончу с местоположением.

4b9b3361

Ответ 1

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

Ответ 2

проверьте режим энергосбережения в настройках системы Android: он должен быть отключен, чтобы позволить менеджеру местоположений генерировать местоположение обновления, когда экран выключен; протестировано на Samsung A5; Я нашел два дня, чтобы найти это решение: -)