我有一个可在后台连续跟踪设备位置的应用。 这在ios 11.4上运行得很好,在这里我可以让它在后台运行几天,而同时在前台做其他事情。
现在,使用ios 12时,该设备在单独使用设备后会停止运行。
LocationManager的初始化如下:
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
locationManager.startUpdatingHeading()
locationManager.allowsBackgroundLocationUpdates = false
locationManager.pausesLocationUpdatesAutomatically = false
if #available(iOS 11.0, *)
{
locationManager.showsBackgroundLocationIndicator = true
}
locationManager.distanceFilter = prefs.getDoubleFromString(Prefs.PREF_DISTANCE_FILTER, defaultVal: 2.5)
当用户决定开始跟踪时
locationManager.allowsBackgroundLocationUpdates = true
已设置。
该应用为位置服务设置了“始终”权限。
您知道ios 12中发生了什么变化吗?
答案 0 :(得分:4)
这似乎是一个错误,因为iOS 12导致应用程序无缘无故地在后台终止。我已经填写了一个错误报告。
有关更多信息和演示项目,请参见此处,以演示此问题: iOS 12 terminates apps in the background for no reason
错误已在iOS 12.2 beta 2(16E5191d)中修复
答案 1 :(得分:1)
我也有这个问题,我昨晚尝试关闭“请勿打扰”,后台定位服务可以正常工作。
那么,“请勿打扰”模式可以停止定位服务吗?
除了关闭“请勿打扰”以外,还有其他避免位置服务停止的方法吗?