- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我添加“下载任务”并终止应用进程。
运行app后,获取[manager downloadTasks];并恢复所有。但文件未加载到 Documets 目录中。
我使用 AFNetworking 2.0 ( https://github.com/AFNetworking/AFNetworking )
完整代码 - https://github.com/nullproduction/FileDownloader
//
// DownloadsViewController.m
//
#import "DownloadsViewController.h"
@implementation DownloadsViewController
- (id)init
{
[self printDocumentsPath];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfiguration:@"downloads"];
manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSArray *downloadTasks = [manager downloadTasks];
if (downloadTasks.count)
{
NSLog(@"downloadTasks: %@", downloadTasks);
// resume all
for (NSURLSessionDownloadTask *downloadTask in downloadTasks)
{
[downloadTask resume];
}
}
return [super init];
}
- (void)addDownloadTask:(id)sender
{
NSURL *URL = [NSURL URLWithString:@"http://www.rarlab.com/rar/wrar500.exe"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request
progress:nil
destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
NSURL *documentsDirectoryPath = [NSURL fileURLWithPath:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]];
return [documentsDirectoryPath URLByAppendingPathComponent:[targetPath lastPathComponent]];
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
NSLog(@"File downloaded to: %@", filePath);
}];
[downloadTask resume];
NSLog(@"%d", downloadTask.taskIdentifier);
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"addDownloadTask" style:UIBarButtonItemStyleBordered target:self action:@selector(addDownloadTask:)];
}
- (void)printDocumentsPath
{
NSString *documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSLog(@"%@", documentsDirectoryPath);
}
@end
最佳答案
我注意到,下载完成后在 finder 中查看文档目录时,文件不存在。但是,当从应用程序访问文件时,它会找到它。一段时间后(一分钟内),该文件最终出现在 documents-dir 中。这可能是仅与模拟器相关的问题。
关于ios - 重启应用后如何恢复下载任务(NSURLSessionDownloadTask),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19790414/
我在使用 NSURLSessionDownloadTask 处理 ios 上的“空间不足”/“磁盘已满”错误时遇到问题 如果由于应用程序中完成下载而导致磁盘已满,我会接到电话 URLSession(
我使用NSURLSessionDownloadTask从服务器下载文件,该文件在后台 session 中运行。我想保存恢复数据以在应用终止时恢复下载。但是,对cancelByProducingResu
我有一个主机应用程序,它有一个完美运行的后台下载 session ,但是通过今天的扩展启动下载我得到这个错误: The operation couldn’t be completed. (NSURLE
我是 NSURLSession 的新手,我没有在其他 stackoverflow 问题中找到答案。所以我发布这个。 我的 ViewController 中有一个 Button 和 ProgressBa
我有以下一段代码,它已经工作了几个月,并且刚刚开始间歇性地损坏。 我正在改变它被调用的方式,所以这并不完全不足为奇,但症状让我感到困惑。某些请求正在下载的临时文件似乎在读取数据之前被删除。 我有关于文
我正在使用 NSURLSessionDownloadTask 下载文件。在应用程序的某一时刻,有必要暂停下载一小段时间,然后再继续下载。我尝试使用暂停方法暂停下载,但任务继续下载。 NSURLSess
有人可以帮我把这个语句翻译成 Swift 吗? NSURLSessionDownloadTask *task = [session downloadTaskWithRequest:request
使用 NSURLSessionDownloadTask 连续下载文件列表的最佳做法是什么? 例如,是否最好在上一次下载完成后开始一个新的 NSURLSession? - (void)startDown
我需要按顺序下载文件。目前我可以在应用程序处于前台时执行此操作。 以下是我使用的逻辑。 创建所有下载任务。 一次恢复一个,当前完成后从 URLSession:task:didCompleteWithE
我正在使用 nsurlsession 来管理下载图像/视频文件。问题是有时请求会出错并返回“找不到内容”之类的文本。我如何确保正在下载的文件确实是我请求的文件类型? (例如 .jpeg 或 .mp4)
我添加“下载任务”并终止应用进程。 运行app后,获取[manager downloadTasks];并恢复所有。但文件未加载到 Documets 目录中。 我使用 AFNetworking 2.0
这就是我使用 NSURLSessionDownloadTask 的方式: let sessionConfiguration = NSURLSessionConfiguration.defaul
我的 iOS 应用程序使用 NSURLSessionConfiguration、NSURLSession、NSURLSessionDownloadTask 等来下载我们的服务器从数据库中动态生成的 x
我想知道我是否可以检索失败的 NSURLSessionDownloadTask 的部分下载数据。 我的用例是: 我开始下载一个 1024MB 的文件 已下载 512MB 网络中断下载失败 下载失败时,
我需要使用桌面应用程序下载文件。首先,我创建了一个简单的iOS项目,用于下载视频文件,引用这个web site 。有用。我想为 macOS 做几乎同样的事情。 class ViewController
我正在使用 NSURLSessionDownloadTask 下载网页文件。当我使用 [NSURLSessionConfiguration backgroundSessionConfiguration
我正在尝试使用 NSURLSessionDownloadTask 下载一个大文件。但是,我只想下载该文件的前 10MB。我知道如何在下载 10MB 后取消操作,但如何强制调用 didFinishDow
在我的应用程序中,我从 Web 服务获取 JSON。此 JSON 包含我要下载的几个文件的网址。 我想使用 NSURLSessionDownloadTask 一个一个地下载每个文件(等待第一个下载完成
我需要从服务器下载一些图片和一段视频: NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSes
在我的应用程序中,我目前正在使用 NSURLSessionDownloadTask通过 HTTP 获取文件。 此类提供了一个有用的委托(delegate)接口(interface)来监控其进度并在通过
我是一名优秀的程序员,十分优秀!