Мониторинг региона не запускается, когда экран iPhone выключен

#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.

Это нормальное поведение или я что-то упускаю?