1

我有一个同时提供多本书下载的 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 恢复];

所以再次考虑之前的情况——

当用户在应用程序崩溃或用户强制退出(杀死)应用程序后启动应用程序时,它会自动开始(而不是恢复)下载,但不是从它离开下载的偏移量开始下载,它从书的开头开始下载。

有什么方法可以从使用 AFHTTPSessionManager 离开下载的偏移量自动恢复下载?

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

4

0 回答 0