2

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];        
}

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

4

1 に答える 1