【发布时间】:2014-01-31 08:22:17
【问题描述】:
我的CLLocationManager 在用户首次进入应用程序时启动。我正在这样初始化它:
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.distanceFilter = kDistanceFilter;
self.locationManager.headingFilter = kHeadingFilter;
我正在使用地理围栏。
我在我的 .plist 中定义了required background modes。
如果我使用 gpx 文件在模拟器中测试应用程序,它可以正常工作。到目前为止,一切顺利。
但是,我在这两个链接中阅读:
Start Location Manager in iOS 7 from background task
Background Location Services not working in iOS 7
在iOS7 中,当位置在几分钟内没有改变时,CLLocation 进入睡眠状态。
我的问题是:
我根本不打电话给didUpdateLocation,我只想要didEnterRegion,或者didExitRegion。理论上,即使应用被杀死或用户位置在过去一小时内没有改变然后决定移动,它会起作用吗?
【问题讨论】:
-
如果应用程序被用户明确杀死,在 iOS7 下,您将不会获得任何更新。对此无能为力。
-
看看这篇 SO 帖子:stackoverflow.com/questions/18639976/…
-
@danielbeard 已经说过“如果应用程序被用户明确杀死,在 iOS7 下,您将不会获得任何更新”!!!您可以使用 Apple 的基于位置的提醒来检查此行为:如果您终止“Remainders”应用程序 - 您将永远不会收到有关位置进入/退出的通知!
-
..如果位置没有改变,关于“CLLocation 进入睡眠状态” - 这是正常行为,你不这么认为吗? :)
标签: ios ios7 cllocationmanager geofencing clregion