如何在重启后获取后台位置更新?

时间:2015-07-29 09:38:36

标签: ios swift

我想开发一款能够不断检索用户位置的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

}

我收到位置更新,但是如果我重新启动设备,位置更新会停止,并且不会重新开始,直到您再次启动应用程序。

重启后如何重新启动位置更新?

1 个答案:

答案 0 :(得分:2)

如果您正在构建非越狱应用,则无法
您必须了解iOS应用程序是非常严格的沙盒。您的应用无法决定重新启动或在被杀或已经在后台时启动后台服务 您将不得不重新考虑此功能。

修改
根据{{​​3}}的this answer,如果您的应用使用startMonitoringSignificantLocationChanges监控重要位置更改,iOS即使重启后也会将其唤醒。但如果用户手动杀死了您的应用,iOS将无法重启。