3
是否可以使用NSOperationQueue addOperationWithBlock來延遲初始化代碼,所以該應用程序沒有被iOS看門狗殺死?使用NSOperationQueue執行iOS應用程序初始化
正如我們所知,如果iOS應用程序花費太多時間在應用程序中:didFinishLaunchingWithOptions或applicationDidBecomeActive中,則會終止應用程序。
但我有很多事情要做的初始化。目前我正在做一堆同步的HTTP請求(讓它同步:),這可能需要不可預知的持續時間。
你能提出一個更好的解決方案來解決這個問題嗎?
謝謝!
編輯:每個人,同步的HTTP請求都不是問題的主題。 我有很多第三方SDK集成。我必須初始化它們,但我不知道它們在初始化過程中正在做什麼。我只是想盡量減少被iOS殺死的風險。
我肯定會建議先讓你的http請求異步。把這個代碼(http代碼)放在一個NSOperation中是可以的,但並不真正使感官與做異步http請求相比 – rpechayr 2012-01-28 09:42:12
@rpechayr一個用例我認爲完全合理的發佈同步提取(無論是通過NSOperationQueue還是GCD ),以免阻塞命名線程,這是iOS-5以前版本設備的四行後備,在NSURLConnection上沒有'+ sendAsynchronousRequest:queue:completionHandler:'。因此,我們正在討論如何爲當前少數用戶添加兼容性,同時嘗試編寫最少量的代碼以支持未來的可維護性。 – Tommy 2012-01-29 23:16:46