ios - 应用程序后台刷新ios9 swift

标签 ios swift background ios9

我一直在开发一个应用程序,该应用程序使用 iOS 的定位服务和 swift。在 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/

相关文章:

ios - 如何用swift添加一个圆形按钮?

ios - 将遵循给定协议(protocol)的类传递给方法,然后使用 swift 实例化该类

ios - xCode 无法创建新的核心数据模型版本

swift - 找不到 mymodule-swift.h 文件

ios - 如何在应用程序终止时更新数据

javascript - 后台运行循环

javascript - 背景颜色悬停淡入淡出效果 CSS

iphone - 使用按钮更改 iphone 应用程序语言,无需重新启动应用程序

Swift 闭包更改捕获的变量

javascript - 停止 jQuery/JavaScript 中的特定函数执行