我正在使用 NSURLSession 在后台下载大型视频文件。在这个 iOS 应用程序中,我实现了暂停、恢复和停止下载功能。
这是我的代码:
在.h
@property (nonatomic, strong) NSURLSessionDownloadTask *downloadTask;
@property (nonatomic, strong) NSURLSession *session;
米
NSURLSessionConfiguration *sessionConfiguration;
float ver = [[[UIDevice currentDevice] systemVersion] floatValue];
if(ver >= 8)
{
sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"sessionID"];
}
else
{
sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfiguration:@"sessionID"];
}
sessionConfiguration.HTTPMaximumConnectionsPerHost = 1;
self.session = [NSURLSession sessionWithConfiguration:sessionConfiguration
delegate:self
delegateQueue:nil];
为了停止下载,我使用这种方法:
- (void)stopDownloading:(id)sender {
// Cancel the task.
[self.fdi.downloadTask cancel];
}
它适用于大量文件,但存在不便。当我停止下载时,不会释放用于下载的内存,因此应用程序大小会持续用于停止的下载任务。