我已经检查了很多文档但是当从后台删除应用程序或重启设备时,无法找到使用NSURLSession恢复任务的解决方案。
我正在处理亚马逊S3上传一些文件,其中我能够
这是我在appdelegate的applicationDidBecomeActive方法中编写的恢复功能的代码。
// Initialize session config and the background session
NSURLSession *l_taskSession = [self backgroundSession];
[l_taskSession getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks)
{
if([uploadTasks count])
{
for (int i=0; i<[uploadTasks count]; i++)
{
NSURLSessionUploadTask *uploadRequestTask = (NSURLSessionUploadTask*)[uploadTasks objectAtIndex:i];
[uploadRequestTask resume];
NSLog(@"-------- Upload Resumed ------- ");
}
}
else if(![uploadTasks count])
{
NSLog(@"------- There are no previous tasks -------");
}
}];
现在问题在于上面提到的情况(2&amp; 3)它没有提供正在进行的任务列表,当我从后台删除应用程序并再次启动时,根据它所属的代码否则如果条件和日志
2015-06-12 17:12:32.902 AppName [162:60b] -------以前没有任务-------
所以我的问题这可以在app从后台删除时恢复任务?或者任何人都可以给我参考链接,我可以找到相同的答案,任何帮助表示赞赏。
答案 0 :(得分:1)
最后我得出结论,
如果iOS应用程序被系统终止并重新启动,则应用程序可以使用相同的标识符来创建新的配置对象和会话,并检索终止时正在进行的传输的状态。 此行为仅适用于系统正常终止应用。
如果用户从多任务处理屏幕终止应用程序,系统将取消所有会话的后台传输。
有关详细信息,请查看Apple有关NSURLSessionConfiguration类参考here的文档。