2016-12-05 96 views
0

我正在開發一個聊天應用程序。如果我打開聊天並開始下載該聊天視圖控制器的onClick()方法的圖像,我如何繼續在後臺下載該圖像(甚至在視圖關閉後彈出)。我在WhatsApp中看到過這個。我正在使用Alamofire來下載圖像。關閉View後如何在後臺運行網絡進程?

+0

NSURLSession背景會議傾聽iOS 8的推出?它被設計用於下載背景內容中的內容以下載內容,即使該應用程序在兩者之間死亡:) –

回答

1

首先,你應該看到Apple's documentation

如果你的通用任務可以在不到3分鐘內完成,使用[UIApplication beginBackgroundTaskWithName]

否則,如果任務與網絡相關,則使用NSURLSession

詳細信息在the link中描述。

1

爲了在應用程序處於後臺時下載內容,或者即使用戶將應用程序殺死,仍應繼續下載,您應該考慮使用NSURLSession的後臺會話配置。

let backgroundSession = URLSessionConfiguration.background(withIdentifier: "abcd") 
let session = URLSession(configuration: backgroundSession) 


let url = URL(string: "abcd") 
session.downloadTask(with: url!, completionHandler: { (url,response,error) in 

}).resume() 
  • 確保您使用唯一的標識符,
  • 儘量使用NSURLsession代表比完成塊,其也被稱爲在文檔定製的代表,我DIN想寫現成的代碼,因此保持完成阻止
  • 如果您的應用程序需要處理某種認證的再處理didRecieveChallenge和其他代表以及:)
  • 如果您的應用程序需要處理的會話過期的情況辦理委託辦理application:handleEventsForBackgroundURLSession:completionHandler:URLSessionDidFinishEventsForBackgroundURLSession:以及:)

編碼快樂:)