殺死這是情景:NSURLSession背景的配置和應用程序被用戶
- NSURLSession與後臺配置
- 下載或上傳任務啓動不良或無Internet連接。
- 用戶關閉應用程序。
- 如果iOS獲得Internet連接將星會話任務。但是,
- 隨着任務仍在等待互聯網。
- 用戶關閉應用程序
- 系統將取消所有未決任務
問題
有可能當用戶再次打開該應用程序,任務被取消知道嗎?
如果是,在哪裏?
This Answer說是的,這是可能的,但我不能讓任何回調返回我一個錯誤。
我正在使用Alamofire來處理我所有的網絡通話。但是,我懷疑Alamofire會改變這種行爲。
編輯1個
/// Networking manager with Background Session Configuration
static var backgroundManager: Alamofire.Manager = {
let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier("com.xxx.NetworkingManager.Identifier")
configuration.HTTPAdditionalHeaders = Manager.defaultHTTPHeaders
let backgroundManager = Alamofire.Manager(configuration: configuration)
return backgroundManager
}()
當應用程序重新啓動時,您是否肯定使用適當的標識符重新啓動背景「NSURLSession」?顯然你不能依賴['handleEventsForBackgroundURLSession'](https://developer.apple.com/reference/uikit/uiapplicationdelegate/1622941-application)來啓動它,所以你必須自己啓動它。 – Rob
我想是的。我用我的代碼更新了答案,以啓動後臺NSURLSession。我需要那樣的東西嗎? –
我會添加一個日誌語句或斷點來確認。但是'static'被懶惰地實例化,如果你從不引用它,將不會被調用。 – Rob