如何在iOS应用程序中使用AFURLSessionManager恢复多个后台下载

时间:2015-12-10 10:18:07

标签: objective-c afnetworking afnetworking-2 nsurlsessiondownloadtask ios8.4

我有一个iOS应用程序,同时提供多个书籍下载,它实际上是一个读者应用程序。之前我使用 AFDownloadRequestOperation 下载了这本书。当用户在应用程序崩溃后或用户强制退出(终止)应用程序后启动应用程序时,它会自动从其下载的偏移量恢复下载,为此我实现了以下方法:

  

AFDownloadRequestOperation * operation = [[AFDownloadRequestOperation   alloc] initWithRequest:request targetPath:path shouldResume:YES];

现在我正在使用 AFNetworking 2.0 API AFHTTPSessionManager 进行后台下载。我已通过以下方式创建了后台会话:

        NSString* strIdentifier = [NSString stringWithFormat:@"someUniqueIdentifier"];
        NSURLSessionConfiguration *sessionConfig;
        if ([[[UIDevice currentDevice] systemVersion] floatValue] >=8.0f)
        {
            sessionConfig =[NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:strIdentifier];
        }
        else
        {
            sessionConfig = [NSURLSessionConfiguration backgroundSessionConfiguration:strIdentifier];
        }
        self.backgroundSessionManager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:sessionConfig];

然后我用委托回调开始了后面的后台下载任务:

  

self.bookDownloadTask = [self.backgroundSessionManager downloadTaskWithRequest:request progress:nil destination:nil completionHandler:nil];

     

[self.bookDownloadTask resume];

再次考虑早先的情况 -

  

当用户在应用程序崩溃后或用户强制退出(终止)应用程序后启动应用程序时,它会自动启动(不恢复)下载但不会从它下载的偏移量开始,它开始下载表单的开头

有没有办法从使用AFHTTPSessionManager下载的偏移量自动恢复下载?

任何帮助将不胜感激。谢谢!!

0 个答案:

没有答案