2015-01-14 62 views
0

我正在使用NSURLSession上傳多個視頻文件。NSURLSession後臺任務:何時調用handleEventsForBackgroundURLSession:completionHandler?

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和博客,我看到關於上述問題的相互矛盾的信息。

在此先感謝您的幫助。

+0

後一個想法聽起來不錯,但你應該處理併發的櫃檯上,可能與GCD或通知... –

回答

0

URLSessionDidFinishEventsForBackgroundURLSession的文檔聲稱在那裏調用它。我一直這樣做,只是因爲他們說,我沒有看到任何相關的問題。