Я пытаюсь определить, была ли у пользователя Android непосредственная близость от списка предопределенных местоположений. Я хотел бы сделать это с наименьшим количеством суммы дренажа на батарее телефона. Эти два механизма я вижу выполнение этого, являются предупреждениями близости и запросом обновлений информации о местоположении. Каковы за и против этих двух методов? У каждого будет меньше влияния на батарее, чем другой? В любом случае я предположил бы, что у определенного используемого менеджера местоположения будет некоторое энергопотребление влияния (существующий ответ Переполнения стека).
Обновление местоположения, вероятно, дешевле, чем оповещения о сближении с точки зрения использования батареи.
Поскольку addProximityAlert
использует как NETWORK_PROVIDER
, так и GPS_PROVIDER
, вы теряете возможность выбирать, какого провайдера вы хотите использовать. Кроме того, хотя в документации предлагается ограничить проверку приближения до одного раза в четыре минуты, когда экран выключен, я не могу найти код для поддержки такой функции, и то, что я могу найти, по сути, это вызов к requestLocationUpdates
с минимальной подсказкой временного интервала 1000 мс. Поскольку рекомендуется, чтобы фоновые службы использовали значения более 60000 мс, я подозреваю, что было бы дешевле вызвать requestLocationUpdates
напрямую с большим минимальным интервалом времени и NETWORK_PROVIDER
.