2017-02-17 60 views
5

我通過使用帶有NSURLSession的多部分表單數據將文件上傳到服務器。當應用程序進入後臺時,我想暫停請求,並在應用程序再次進入前臺時繼續。所以我只是做[session suspend][session resume]。當應用程序僅在後臺運行時,此功能正常工作。但是,如果設備被鎖定,返回前景並嘗試恢復,則會導致網絡連接丟失錯誤。我明白,當設備被鎖定時,所有打開的套接字都會關閉,因此會出現問題,但有沒有辦法使這項工作無需從頭開始上傳?NSUrlSession在設備鎖上掛起並恢復問題

回答

2

在應用程序轉到後臺之前,您應該將前臺會話切換到後臺會話,然後不需要掛起它。您的文件將在後臺(最終)由OS上傳。

+0

這個問題是需要後臺NSUrlSession直接從文件上傳,但由於我們使用多部分表單數據,我們必須進行暫停/恢復。 –

+1

將其保存到文件? :D –

+0

問題是服務器限制,而不是客戶端。 –

0

不幸的是,根據documentation,你需要使用一個文件來執行你的後臺上傳。

從「後臺傳輸注意事項」:

只有從上傳文件任務支持(從數據對象上載或程序退出後,流會失敗)。

(除此之外,不能保證你的應用何時或爲什麼會被終止。試圖避免單獨設備鎖定是不夠的;還有其他方式可能會終止你的應用。