Согласно Документация Apple в разделе Использование регионов для мониторинга пересечений границ:
В iOS регионы, которые вы регистрируете в диспетчере местоположений, сохраняются между запусками вашего приложения. Если пересечение регионов происходит, когда ваше приложение для iOS не запущено, система автоматически выводит его из спящего режима (или перезапускает) в фоновом режиме, чтобы оно могло обработать событие. При повторном запуске все регионы, которые вы настроили ранее, становятся доступными в свойстве monitorRegions любых созданных вами объектов диспетчера местоположений.
Так что да, ваше приложение будет разбужено (или перезапущено!), Когда местоположение системы обнаружит, что вы вошли/вышли (в зависимости от вашей настройки) в желаемый регион, так что это даже если ваше приложение, конечно, не работает. Вам просто нужно правильно обработать его в делегате приложения, когда приложение перезапускается, вы получаете ключ UIApplicationLaunchOptionsLocationKey
в словаре параметров. Подробнее см. ссылку на документацию ниже.
Помните, что метод -startMonitoringForRegion:desiredAccuracy:
устарел в iOS 6, поэтому его не следует использовать. Вместо этого используйте -startMonitoringForRegion
.
Чтобы узнать, как реагировать на повторный запуск приложения после события местоположения, см. документацию здесь, эта информация, как вы увидите, находится в обсуждении устаревшего метода, но она по-прежнему актуальна, я считаю, что Apple забыла перенести эту информацию к новому методу, когда они устарели от старого. Я подал им ошибку об этом.
ОБНОВЛЕНИЕ
Apple обновила документацию CLLocationManager после моего отчета об ошибке. В документации теперь указывается, для каких типов мониторинга местоположения приложение запускается или не запускается после его завершения. См. раздел Использование служб определения местоположения. в фоновом режиме
person
Daniel
schedule
18.06.2013