NSURLSession后台任务:何时调用handleEventsForBackgroundURLSession:completionHandler?

时间:2015-01-14 20:47:19

标签: ios iphone afnetworking nsurlsession

我正在使用NSURLSession上传多个视频文件。

在每个任务完成后,似乎会多次调用application:handleEventsForBackgroundURLSession:completionHandler:方法。我存储传递给此方法的completionHandler,以便稍后调用它。

我的问题是:每次调用上面的应用程序委托方法时,我都会调用它吗?或者我只在我的后台会话[tasks count] == 0时调用它?当我执行后者时,应用程序在后台崩溃,并在控制台中显示此信息:

Application Specific Information:
<BKNewProcess: 0x134d48400; com.vimeo; pid: 2141; hostpid: -1> has active assertions beyond permitted time: 
{(
    <BKProcessAssertion: 0x134d49500> id: 1679-3230372B-D4E5-44A1-A8DD-221CA8E6EECE name: com.apple.nsurlsessiond.handlesession com.vimeo.app.BackgroundSessionIdentifier process: <BKNewProcess: 0x134d48400; com.vimeo; pid: 2141; hostpid: -1> permittedBackgroundDuration: 30.000000 reason: backgroundDownload owner pid:1679 preventSuspend  preventThrottleDownUI  preventIdleSleep  preventSuspendOnSleep 
)}

我在背景会话及其错综复杂的内容中阅读了很多StackOverflow和博客文章,我看到有关上述问题的相互矛盾的信息。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

URLSessionDidFinishEventsForBackgroundURLSession的文档说要在那里调用它。我一直这样做是因为他们说过,我没有看到任何相关的问题。