0
我目前正在接收位置更新并希望通过api调用周期性地向服务器发送更新。启动应用程序时一切正常,但后台更新确实不一致。在后台处理位置数据
这里就是我目前正在做的事:
var lastUpdateTime: Double?
func locationManager(manager: CLLocationManager, didUpdateToLocation newLocation: CLLocation, fromLocation oldLocation: CLLocation)
{
userLocation = newLocation
if let lastUpdate = lastUpdateTime {
let thisUpdate = NSDate().timeIntervalSince1970
let timeInterval = thisUpdate - lastUpdate
if timeInterval > 60 {
if
let latitude = userLocation?.coordinate.latitude,
let longitude = userLocation?.coordinate.longitude
{
// Make API call to update location
lastUpdateTime = NSDate().timeIntervalSince1970
}
}
} else {
lastUpdateTime = NSDate().timeIntervalSince1970
}
}
我读过我能找到关于后台任务和位置更新,但说实话,我有点失落。如果有帮助的话,api调用是通过Alamofire完成的,如果这对它执行的频率有影响的话。
编辑:
新增CLLocationManager选项...
locationManager.delegate = self
locationManager.distanceFilter = kCLDistanceFilterNone
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
locationManager.startUpdatingLocation()
时,应用程序将在后台持续接收位置更新您是否正确激活了后台位置? 您的位置上有什么设置? (例如刷新期间) –
Hi @ thibautnoah,我会用CLLocationManager选项更新OP – SimonTheEngineer
这似乎很好,你能更准确地定义你所调用的不一致吗? 我假设你的API调用是正确的,如果是这样的问题出现在后台更新中,你有没有检查过这个教程? : http://www.raywenderlich.com/92428/background-modes-ios-swift-tutorial –