2

我正在使用带有 IOS 7.1 的 iPhone5s 进行测试。我使用 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 会立即触发。

这是正常行为还是我错过了什么?

4

0 回答 0