【发布时间】:2012-01-28 07:33:58
【问题描述】:
是否可以使用NSOperationQueue addOperationWithBlock 来延迟初始化代码,让应用没有被iOS看门狗杀死?
我们知道,如果应用程序在应用程序中花费太多时间,iOS 会终止应用程序:didFinishLaunchingWithOptions 或 applicationDidBecomeActive。
但是我有很多事情要做初始化。目前我正在做一堆同步的HTTP请求(让它同步:))这可能需要不可预测的持续时间。
您能否提出一个更好的解决方案来解决这个问题?
谢谢!
编辑:大家,同步的 HTTP 请求不是问题的主题。 我集成了很多第三方 SDK。我必须初始化所有这些,但我不知道它们在初始化期间在做什么。我只是想尽量减少被 iOS 杀死的风险。
【问题讨论】:
-
我肯定会建议首先使您的 http 请求异步。将此代码(http 代码)放在 NSOperation 中是可以的,但与发出异步 http 请求相比并没有真正意义
-
@rpechayr 一个用例我认为对于发出的同步提取(无论是通过 NSOperationQueue 还是 GCD)是完全明智的,以免阻塞命名线程,作为 pre- NSURLConnection 上没有
+ sendAsynchronousRequest:queue:completionHandler:的 iOS 5 设备。因此,我们正在讨论为(目前相当大但不断减少的)少数用户添加兼容性,同时尝试编写最少的代码以帮助未来的可维护性。
标签: ios ios4 uiapplicationdelegate