2014-10-02 68 views
0

每次我的應用程序加載它時,都會調用一個Web服務來檢查是否有更新可供下載。如果有它下載它。GCD sendSynchronousRequest applicationDidEnterBackground

我使用Grand Central Dispatch在不同線程中同步下載更新,以便我可以在我的主線程上顯示加載圖標。我需要同步下載,因爲應用程序在繼續之前需要更新。

但是,如果下載需要一段時間並且屏幕進入睡眠狀態,則會發生問題,從而有效地調用applicationDidEnterBackground。當用戶打開屏幕的背面上和應用程序恢復我得到以下錯誤:

EXE_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0) 

什麼是解決這個問題的最好方法?嘗試暫停下載並在應用程序恢復時再次恢復或創建後臺任務並繼續下載?我不確定哪個是最好的方法。

回答

0

我認爲最安全的答案是,除非您的應用程序具有其他背景特權(音頻,gps,外部設備等),否則當您調用-applicationDidEnterBackground時應暫停/停止任何網絡下載,並在您的應用程序恢復時回來。

相關問題