使用NSURLSessionDataTask,我可以继续下载文件,即使用户在退出应用程序后回来了吗?

时间:2016-01-28 06:40:50

标签: ios nsurlsession nsurlsessiondownloadtask nsurlsessiondatatask nsurlsessiontask

假设我正在使用NSURLSessionDownloadTaskNSURLSessionDataTask下载300 MB的文件(目前,我不知道在我的情况下哪个是最佳选择)。用户退出应用程序或应用程序突然崩溃,同时下载250 MB。当下次用户打开应用程序时,我将不得不从250 MB继续下载。

我使用NSURLSessionDownloadTask进行了演示。但是,如果我们使用NSURLSessionDownloadTask,我们就无法访问临时文件的NSURL,直到下载完成为止(在didFinishDownloadingToURL我们会移动此临时文件到其永久的最终位置。)

我开始知道,我必须使用NSURLSessionDataTask而不是DownloadTask,然后使用NSURLSessionDataDelegate上的委托方法:

- (void)URLSession:(NSURLSession *)session
      dataTask:(NSURLSessionDataTask *)dataTask
didReceiveData:(NSData *)data;

这将允许我在收到数据时访问它。但是,我不知道我现在将如何处理事情。我想要一种方法,这样我就可以在上面的委托中附加数据并将其写在某个位置的磁盘上。第二个问题,我怎么知道数据的下载应该仅从这里开始(即从250 MB开始)

真的可行吗?或者仅当应用程序处于活动状态时才可行?

我非常渴望这个问题。

0 个答案:

没有答案