Ответ 1
В CLLocationManager
есть несколько вариантов, и вы должны использовать их разумно или вы увидите непредвиденный отвод батареи.
1, когда вы вызываете метод startMonitoringSignificantLocationChanges
, убедитесь, что вы еще не вызвали startUpdatingLocation
, иначе убедитесь, что вы остановили его с помощью stopUpdatingLocation
, прежде чем использовать значительное расстояние.
2- Проверяйте свои настройки для pausesAutomatically и разрешайте отложенные обновления. Это существенно повлияет на ситуацию.
3. Если вам не нужны радиомаяки, посещения или геообработка, отключите их. Поскольку они могут заставить LM в более высокие режимы слива батареи.
4- Вы также должны проверить, какая логика вы выполняете при получении обновления местоположения. Уведомления, которые включают экран и сетевые вызовы, которые могут развернуть Wi-Fi и услугу сотовой связи, значительно увеличит количество разряда батареи на вашем устройстве, чем менеджер местоположения.
Вы также можете проверить https://LocationKit.io для коко-порта, предназначенного для оптимизации служб определения местоположения для высокой точности и низкой мощности. Полное раскрытие информации Я работаю в компании, которая делает LocationKit.