0

我想知道當應用程序在後臺時是否可以發送異步連接。這是因爲我需要發送用戶的位置(從核心位置獲取),以在每次位置更改時更新遠程服務器中的數據庫,即使應用程序不在前臺。當應用程序在後臺時NSURLConnection

我必須爲此設置任何權限嗎? Apple在應用程序處於後臺時是否拒絕應用程序處理連接?

在此先感謝!

回答

3

iOS提供了多任務API,即使你的應用程序在後臺,它的一些API也可以被訪問。這些服務 -

  1. 本地通知
  2. 背景音頻
  3. 後臺任務
  4. 背景位置

所以你可以使用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?

+0

即使通過核心位置委託方法發送NSURLConnections? – CainaSouza

+2

是的,這是可能的。 –

+0

你測試過了嗎?下面的答案說這是不可能的。我在想,我可以像@Zerto所建議的那樣做,即將所有值與CoreData一起存儲並在應用程序處於前臺時發送連接。 – CainaSouza

0

這裏,從蘋果的文檔(http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW47

有幾種方法在後臺跟蹤用戶的位置,其中大部分實際上並不需要你的應用程序在後臺連續運行:

- 重大變更位置服務(推薦)

-foreground只定位服務

-Background位置服務

但你不能發送請求時,作爲唯一可能的事情要做有: -audio -location -voip -newsstand - 配件& blutooth連接

所以我想你可以存儲你所有的位置,併發送它與NSURLConnection一旦應用程序再次前往

相關問題