我一直在开发一个应用程序,该应用程序迅速使用iOS的位置服务。直到ios9都很棒。由于某些原因,我的应用程序在后台运行时会停止运行,但只能在物理设备上运行。模拟器在后台运行良好。我正在通过NSLog记录东西,所以我可以说它在设备上停止了,而不是在SIM卡上停止了。

是的,我设置了info.plist。是的,我已打开后台功能。这确实在iOS8中确实有效,但由于9的某些原因,该应用程序在后台停止执行。

我在设置中启用了背景刷新功能,并且我的应用设置为始终请求位置更新,该设置也已在手机的设置中启用。

我不知道为什么会发生这种情况,所以我猜测可能需要对xcode7和/或ios9进行一些代码更改。

很感谢任何形式的帮助!!!

最佳答案

因此看来,Apple在iOS9中需要一个新事物:

allowsBackgroundLocationUpdates = true

这是用于位置管理器的。

我的最终代码如下:
    // this is needed for ios9 to get the location even when it's backgrounded
    if #available(iOS 9.0, *) {
        self.locationManager.allowsBackgroundLocationUpdates = true
    } else {
        // Fallback on earlier versions
    }

关于ios - 应用程序后台刷新iOS9 Swift,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32994680/

10-11 23:06
查看更多