NSURLSession 后台任务:避免重复

Posted

技术标签:

【中文标题】NSURLSession 后台任务:避免重复【英文标题】:NSURLSession background task: avoid duplicates 【发布时间】:2014-05-06 10:35:09 【问题描述】:

我是 NSURLSession 和特别是后台下载任务的新手。有没有办法查询 NSURLSession 以返回后台任务列表?似乎可以对后台下载任务提出重复请求。如果我在前一个 URL 下载请求仍在进行中时发出相同的 url 下载请求,我不会收到任何错误。

处理这种情况的最佳方法是什么?我可以维护我当前正在从中下载的 url 列表,但如果应用程序重新启动,我会丢失此引用。我可以再次将这些信息存储在持久存储中。但是没有选项来查询 NSURLSession 似乎很不方便。

【问题讨论】:

【参考方案1】:

您可以通过以下调用获取添加到会话中的所有下载任务的列表。

[[self defaultSession] getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks) 

];

【讨论】:

以上是关于NSURLSession 后台任务:避免重复的主要内容,如果未能解决你的问题,请参考以下文章

NSURLSession,数据任务转换为下载任务后,后台无法下载

NSURLSession 后台任务:handleEventsForBackgroundURLSession:completionHandler 啥时候调用?

NSURLSession 后台断点下载

当应用程序从后台删除或设备重启时使用 NSURLSession 恢复任务

NSURLSession 后台传输不起作用

NSURLSession 后台会话中的 NSURLSessionDownloadTask 给出错误