我已經創建了後臺nsurlsession來執行下載任務。當應用程序在後臺時它運行良好。但是,當我關閉應用程序(雙擊「Home」按鈕並向上滑動)時,下載任務似乎被取消並失敗,並且當我重新啓動應用程序時,它使我再次從頭開始下載。根據蘋果公司的文件,即使應用程序不再運行,後臺傳輸也可以工作。我做錯了什麼?關閉應用程序後臺傳輸下載任務失敗
1
A
回答
0
在NSURLSession
documentation第一段,我們可以觀察到:
這個API提供了一套豐富的委託方法支持 認證並給出了您的應用程序執行後臺 下載當你的應用是一種能力沒有運行,或者在iOS中,您的應用程序暫停時爲 。
現在請注意它指出:
,或者在iOS上,當你的應用程序被暫停。
看起來只有OS X應用程序才能在應用程序未運行時完成後臺任務。
1
當用戶強制退出時,該應用程序不會重新啓動以用於後臺下載。
爲application:didReceiveRemoteNotification:fetchCompletionHandler:的iOS8上的文件說:
使用此方法來處理傳入的遠程通知你的應用程序。 與應用程序不同的是:didReceiveRemoteNotification:方法,即 僅在您的應用程序在前臺運行時調用,系統 在您的應用程序在前臺運行或 後臺運行時調用此方法。另外,如果啓用了遠程通知 後臺模式,則系統將啓動您的應用(或從 掛起狀態中將其喚醒),並在推送 通知到達時將其置於後臺狀態。但是,如果用戶強制退出,系統不會自動啓動您的應用程序 。在這種情況下, 用戶必須重新啓動您的應用或重新啓動設備,然後系統 嘗試再次自動啓動您的應用。
2
從the NSURLSessionConfiguration Class Reference:
如果iOS應用由系統終止並重新啓動,該應用可以使用相同的標識符來創建新的配置對象和會話和檢索分別傳輸的狀態在終止時正在進行中。此行爲僅適用於系統正常終止應用程序。 如果用戶從多任務屏幕終止應用程序,系統將取消所有會話的後臺傳輸。
所以,而如果本身的iOS事物的正常過程中關閉您的應用程序,如果你力的從多任務屏幕退出後臺傳輸將繼續,它會殺死你的所有傳輸。
相關問題
- 1. 如果iOs應用程序已關閉,則後臺任務
- 2. UWP後臺任務HttpClient在設備屏幕關閉時失敗
- 3. 在應用程序關閉的情況下在後臺運行任務
- 4. 如果下載失敗,在30秒後關閉BufferedOutputStream輸出
- 5. 應用程序在後臺被關閉
- 6. 關閉任務托盤應用程序
- 7. 如何在應用程序加載失敗時關閉uwsgi?
- 8. Iphone後臺任務,即使在關閉後應用
- 9. 應用程序在後臺模式下保持關閉
- 10. 如何從後臺任務關閉Windows 8商店應用程序
- 11. 即使在關閉應用程序時也運行後臺任務
- 12. 如何正常關閉WPF應用程序並運行後臺任務?
- 13. Android/iOS:應用程序處於後臺/關閉時調度任務
- 14. 如何使用onStop()關閉應用程序後運行任務?
- 15. 強制關閉在Android應用程序的後臺服務
- 16. android:報警任務在應用程序關閉時關閉
- 17. 任務計劃程序失敗.Net 4.5控制檯應用程序
- 18. 地鐵應用程序的後臺傳輸(上載)
- 19. Android異步任務下載失敗err
- 20. Visual Studio錯誤:「無法激活後臺任務,後臺任務激活失敗。」
- 21. 將應用程序置於後臺後AVAssetReader失敗,爲什麼?
- 22. 如何在關閉wpf應用程序時關閉所有後臺進程
- 23. 驗證失敗,因爲遠程方關閉了傳輸流
- 24. 驗證失敗,因爲遠程方已關閉傳輸流
- 25. iPhone應用程序應該關閉,不會去後臺
- 26. 在Xamarin Android應用程序關閉後,後臺服務會停止
- 27. 如何從我的Android應用程序關閉後臺進程?
- 28. Android後臺進程 - 從應用程序啓動到關閉
- 29. Android應用程序在後臺關閉連接線程
- 30. Android殺死後臺進程並關閉應用程序
指定「背景傳送」的含義,因爲我相信你可能會錯誤地將Apple的聲明誤認爲只與「NSOperation」任務相關的聲明。 – jakenberg
這與NSOperation無關。這是NSURLSession的一個功能 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/URLLoadingSystem/Articles/UsingNSURLSession.html – LongNV
就像[以前討論](http://stackoverflow.com/問題/ 25047427/does-nsurlsession-continue-file-transfer-if-app-is-killed-from-task-manager),iOS似乎(明智地)採取強制退出作爲用戶想要的提示所有應用程序活動停止,包括後臺傳輸。 –