【发布时间】:2016-08-07 23:00:21
【问题描述】:
我正在使用AFURLSessionManager'sdownloadTaskWithRequest:progress:destination:completionHandler: 方法来创建NSURLSessionDownloadTask。
据我所知,AFURLSessionManager 实现了NSURLSessionTaskDelegate 并将自己设置为NSURLSession(也是由该经理创建的)的委托。
当我在下载过程中强制退出应用并重新启动它时,应根据 Apple 的文档调用 NSURLSessionTaskDelegate's URLSession:task:didCompleteWithError: 方法。
但即使我通过setTaskDidCompleteBlock: 方法(调用它以反映我上面提到的回调)向AFURLSessionManager 注册了一个完成块,该块也不会在应用程序重新启动时执行。实际上我不希望它被调用,因为
NSURLSession 实例在终止时已经死亡。
我应该如何完成这项任务?也就是说,如果用户强制退出应用程序,我想在应用程序重新启动时恢复下载。
【问题讨论】:
-
如果用户强制退出应用程序,这将杀死所有请求(无论是标准请求还是后台请求)。如果您希望在应用程序终止后继续请求,则必须使用后台会话,但 IIRC,即使用户强制退出应用程序,即使应用程序离开前台并在正常过程中被抛弃,也不会继续应用程序的生命周期。
标签: objective-c afnetworking nsurlsessiondownloadtask