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];
}
大量のファイルで問題なく機能しますが、不便な点があります。ダウンロードを停止すると、ダウンロードに使用されたメモリが解放されないため、アプリケーションのサイズは停止したダウンロード タスクに対して継続的に使用されます。