
downloadTask
1,urlSession的didReceiveChallenge
2,didWriteData 保存到tmp下
3,didFinishDownloadingToUrl,从传入的destination block得到download目录,
将tmp移到download下
4,didCompleteWithError, 返回download路径
dataTaskWithRequest
1,urlSession的didReceiveChallenge
2,didReceiveData,保存到mutableData
3,didCompleteWithError,返回mutableData序列化对象
downloadTaskWithResumeData
1,urlSession的didReceiveChallenge
2,didiResumeAtOffset
3,didWriteData 保存到tmp下
4,didFinishDownloadingToUrl,从传入的destination block得到download目录,
将tmp移到download下
5,didCompleteWithError, 返回download路径;
如果发生错误,则返回空的download路径 因为没有到第4步didFinishDownloadingToUrl这一步
取消当前下载任务
NSURLSessionDownloadTask:
cancelByProducingResumeData (这种方式, 可以用downloadTaskWithResumeData续传,流程如上面didiResumeAtOffset)
cancel
1,didCompleteWithError
取消session下面的所有task的下载任务
这种情况下session就不再可用了, AFURLSessionMananger需要重新创建。
NSURLSession :
invalidateAndCancel
finishTasksAndInvalidate
1,didCompleteWithError
暂停当前下载任务
NSURLSessionDownloadTask:
suspend
(可以用resume 继续下载
1,didWriteData 从这继续
)

网友评论