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 –