即使我杀了应用程序,NSURLSessionDownloadTask继续下载

问题描述 投票:1回答:1

我正在使用NSURLSessionDownloadTask下载一个网络文件。当我使用[NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:]创建NSURLSessionConfiguration时,我发现NSURLSessionDownloadTask继续下载即使我杀了应用程序。这不是我的期望,我只想在后台下载。我不想杀死应用程序,它仍在下载。

NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"DDDownloader"];
config.timeoutIntervalForRequest = 10;
self.session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];

NSURLSessionDownloadTask *downloadTask = [self.session downloadTaskWithURL:[NSURL URLWithString:downloadModel.url]];
[downloadTask resume];

我希望在我杀死应用程序后,该应用程序将不再执行下载任务。

ios objective-c nsurlsession nsurlsessiondownloadtask
1个回答
1
投票

我现在有了一般的想法。我在苹果文档中看到了[NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:]的描述:

如果iOS应用程序被系统终止并重新启动,则应用程序可以使用相同的标识符来创建新的配置对象和会话,并检索终止时正在进行的传输的状态。此行为仅适用于系统正常终止应用程序。如果用户从多任务屏幕终止应用程序,系统将取消所有会话的后台传输。此外,系统不会自动重新启动用户强制退出的应用程序。在再次开始传输之前,用户必须明确重新启动应用程序。

因为我正在使用xcode上的关闭按钮关闭并重新启动我的应用程序,这就是苹果文档所说的:“iOS应用程序被系统终止并重新启动。”以这种方式关闭应用程序时,NSURLSessionDownloadTask不会结束。如果用户从多任务处理屏幕关闭应用程序,系统将取消所有会话的后台传输。

所以我的问题解决了!

© www.soinside.com 2019 - 2024. All rights reserved.