如何在后台模式下在ios中运行NSURLSession

时间:2015-10-01 10:51:27

标签: ios objective-c background nsurlsession

我试图为分块响应打开一个URL会话,我可以通过在NSURLSessionConfiguration对象中设置backgroundSessionConfigurationWithIdentifier来实现这一点。如果应用程序转到后台,URL会话仍会运行,但是一旦我从多任务视图中交换退出应用程序,会话就会终止。有没有办法限制退出应用程序,直到didFinishDownloadingToURL委托被调用。

我使用本机线程在我的Android应用程序中实现了类似的功能(增强线程驻留在通过JNI通过UI调用的.so中),如果UI从多任务视图中换出,则不会终止。有没有办法在IOS应用程序中实现相同的目标?

的问候, Birajendu

1 个答案:

答案 0 :(得分:0)

根据NSURLSession guide后台会话任务在不同进程(不是线程)中执行。即使启动器应用程序被杀死也已完成。重新启动应用程序时,您可以重新分配给bg任务。

  

在iOS和OS X中,当用户重新启动您的应用时,您的应用应立即创建后台配置对象,其标识符与上次运行应用时具有未完成任务的任何会话相同,然后为每个会话创建一个会话那些配置对象。这些新会议同样会自动与正在进行的背景活动重新关联。

如果您的应用在重启应用之前在bg会话和会话期间终止,则无法确定是否可以获得任务结果。