我想知道當應用程序在後臺時是否可以發送異步連接。這是因爲我需要發送用戶的位置(從核心位置獲取),以在每次位置更改時更新遠程服務器中的數據庫,即使應用程序不在前臺。當應用程序在後臺時NSURLConnection
我必須爲此設置任何權限嗎? Apple在應用程序處於後臺時是否拒絕應用程序處理連接?
在此先感謝!
我想知道當應用程序在後臺時是否可以發送異步連接。這是因爲我需要發送用戶的位置(從核心位置獲取),以在每次位置更改時更新遠程服務器中的數據庫,即使應用程序不在前臺。當應用程序在後臺時NSURLConnection
我必須爲此設置任何權限嗎? Apple在應用程序處於後臺時是否拒絕應用程序處理連接?
在此先感謝!
iOS提供了多任務API,即使你的應用程序在後臺,它的一些API也可以被訪問。這些服務 -
所以你可以使用CoreLocation
時,應用程序是不是在前臺絕對發送位置更新。
此鏈接 - iOS multitasking有代碼在後臺應用程序啓動您的服務。一步一步的指示
NSTimer
在後臺使用UIApplication:beginBackgroundTaskWithExpirationHandler:
x
時間比UIApplication:backgroundTimeRemaining
小它的作品就好了,萬一x
較大,應該在沒有剩餘時間之前再次啓用位置管理器(並禁用),以避免後臺任務被終止。這是可行的,因爲位置是三種允許的後臺執行類型之一。源 - How do I get a background location update every n minutes in my iOS application?
有幾種方法在後臺跟蹤用戶的位置,其中大部分實際上並不需要你的應用程序在後臺連續運行:
- 重大變更位置服務(推薦)
-foreground只定位服務
-Background位置服務
但你不能發送請求時,作爲唯一可能的事情要做有: -audio -location -voip -newsstand - 配件& blutooth連接
所以我想你可以存儲你所有的位置,併發送它與NSURLConnection一旦應用程序再次前往
即使通過核心位置委託方法發送NSURLConnections? – CainaSouza
是的,這是可能的。 –
你測試過了嗎?下面的答案說這是不可能的。我在想,我可以像@Zerto所建議的那樣做,即將所有值與CoreData一起存儲並在應用程序處於前臺時發送連接。 – CainaSouza