我有一个应用程序,可以在后台持续跟踪设备位置。这在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中有什么变化吗?
这似乎是iOS 12以来的一个错误,即应用程序将在后台被终止,没有正当理由。我填写了一份错误报告。
有关更多信息和演示项目,请参阅此处:iOS 12 terminates apps in the background for no reason
在iOS 12.2 beta 2(16E5191d)中修复了错误
我也有这个问题,我昨晚尝试关闭“请勿打扰”,后台位置服务工作正常。
那么,“请勿打扰”模式可以停止位置服务吗?
除了关闭“请勿打扰”外,还有其他方法可以避免定位服务停止吗?