【问题标题】:Reachability hangs application可达性挂起应用程序
【发布时间】:2012-04-11 15:02:54
【问题描述】:

目前我是 following thread 来检查我的互联网是否在我的应用程序中处于活动状态,但由于需要时间来给出响应,所以这将冻结我的 UI。

那么有什么方法可以在不冻结 UI 的情况下实现它(如 NSOperation)。

【问题讨论】:

  • 您需要发布您的代码,否则没有人能够回答。可达性很好,一定是你做错了什么。

标签: iphone ipad ios5 reachability


【解决方案1】:

如果互联网确实出现故障,则需要时间。这是Apple API的限制。我们必须忍受它或设置一个计时器以在 30 秒左右后取消操作。但是,如果真正的响应,尤其是通过 GPRS 的响应需要超过 30 秒,如果您设置计时器条件,您也将取消该响应。

【讨论】:

    【解决方案2】:

    或者,您可以异步检查互联网状态并在主线程中显示 ActivityIndi​​cator 或类似内容。这意味着您将创建一个新线程,它将与您的主线程并行运行(在您的情况下,GUI 正在冻结)。

    【讨论】:

    • 你有任何示例/示例教程,如何做到这一点?
    • 看看fieryrobot.com/blog/2010/06/12/…,它解释了如何使用dispatch_async,它允许你在另一个线程中运行一段代码。您可能需要稍微调整一下可达性(例如,在结果准备好时向 NSNotificationCenter 发布通知)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多