#ios #ios7 #core-location #geofencing #region-monitoring
#iOS #ios7 #расположение ядра #геозона #мониторинг региона
Вопрос:
Я использую iPhone5S с IOS 7.1 для тестирования. Я использую делегат locationManagerDidPauseLocationUpdates для вызова метода настройки геозоны.
- (void) monitorForDepartureFromLastKnownStoppedLocation:(Locations *)lastKnownLocation
{
CLLocationCoordinate2D lastLocation = CLLocationCoordinate2DMake(lastKnownLocation.latitude, lastKnownLocation.longitude);
CLCircularRegion *region = [[CLCircularRegion alloc] initWithCenter:lastLocation
radius:300
identifier:@"departure from last stopped location"];
region.notifyOnEntry = NO;
region.notifyOnExit = YES;
[monitorSignificantChangeObject.locationManager startMonitoringForRegion:region];
}
Затем вызывается метод - (void) locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
делегирования, когда пользователь выходит из региона.
Все работает в следующих сценариях.
- приложение на переднем плане.
- приложение в фоновом режиме.
- экран заблокирован приложением в фоновом режиме или на переднем плане.
Он не работает корректно в следующем сценарии:
Геозона была отключена (т.Е. Должен сработать didExitRegion), экран заблокирован и экран выключен (т. Е. Экран черный, это происходит через пару секунд после блокировки экрана) в этом сценарии didExitRegion вообще не запускается. Однако, как только я нажимаю кнопку «Домой», экран загорается (все еще заблокирован), немедленно запускается didExitRegion.
Это нормальное поведение или я что-то упускаю?