我目前正致力于用ASIHTTP替换AFNetworking代码。我有一个场景,我有多个文件与服务器同步。我希望这个任务在后台继续,我注意到当我在后台时下载正在进行中。如果我需要进行任何其他调用以支持后台下载,我只是好奇和困惑。
我在一个帖子上找到了以下内容。
__block UIBackgroundTaskIdentifier backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^(void) {
[application endBackgroundTask:backgroundTaskIdentifier];
[[NordecaAFAPIClient sharedClientWithBaseURL:[ECUserDefaults getNordecaApiURL]].operationQueue cancelAllOperations] ;
}];
为了支持后台下载,我真正需要编写什么?
我的另一个问题是AFDownloadRequestOperation
中的shouldResume标志是什么意思?
答案 0 :(得分:4)
在Does AFNetworking have backgrounding support?中,AFURLConnectionOperation现在已经支持setShouldExecuteAsBackgroundTaskWithExpirationHandler:
,它基本上为您执行后台下载管理,因为它的性能与applicationDidEnterBackground
中的普通UIBackgroundTaskIdentifier代码相同,就像你在问题中写的那样。
关于shouldResume
中的AFDownloadRequestOperation
,它是
表示文件何时为的符号
暂时下载到“不完整”文件夹,这是一个临时文件
路径,所以当计算已经下载的数据大小时
知道从哪里恢复下载,它会返回正确的
范围。