我想开发一款能够不断检索用户位置的iPhone应用程序。即使用户重新启动设备或杀死应用程序。我在.plist
文件上设置了位置背景模式,并使用以下选项创建了位置管理器:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
locationManager = CLLocationManager()
locationManager!.requestAlwaysAuthorization()
locationManager!.distanceFilter = 100
locationManager!.activityType = .Fitness
locationManager!.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager!.pausesLocationUpdatesAutomatically = true
locationManager!.delegate = self
locationManager!.startUpdatingLocation()
return true
}
我收到位置更新,但是如果我重新启动设备,位置更新会停止,并且不会重新开始,直到您再次启动应用程序。
重启后如何重新启动位置更新?
答案 0 :(得分:2)
如果您正在构建非越狱应用,则无法。
您必须了解iOS应用程序是非常严格的沙盒。您的应用无法决定重新启动或在被杀或已经在后台时启动后台服务
您将不得不重新考虑此功能。
修改强>
根据{{3}}的this answer,如果您的应用使用startMonitoringSignificantLocationChanges
监控重要位置更改,iOS即使重启后也会将其唤醒。但如果用户手动杀死了您的应用,iOS将无法重启。