iphone无线连接,再次打开/关闭无线连接后连接失败

时间:2010-10-03 04:18:33

标签: iphone networking nsurlconnection

我有一个非常基本的iphone应用程序,通过以下方式进行一些网络呼叫:

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

在测试中,如果我停止应用程序,关闭无线,并重新启动应用程序(不杀死并重新启动,只是带到前台),我继续在任何网络URL尝试上出错。但其他应用程序(safari等)恢复正常。

如果应用程序在后台运行时出现故障,是否需要“清除”我的应用中的网络状态,我是否缺少某些内容?

3 个答案:

答案 0 :(得分:1)

尝试使用异步网络请求。在某些错误情况下,暂停和恢复被阻止的同步网络线程可能会出现某种问题。

答案 1 :(得分:1)

我不知道为什么你会看到你的行为,但我确实有两个建议。

首先,除非您已经在后台线程上运行,否则请避免同步请求。 Apple的URL Loading System Programming Guide有一些异步请求的示例代码。 documentation for NSURLConnection还包含指向“相关示例代码”下的大量示例代码的链接。

然而,更好的选择是使用ASIHTTPRequest。它是一个非常强大,灵活且易于使用的库,用于从Web下载数据。它被用于数十个,如果不是数百个(如果不是数千个)应用程序,并且非常擅长处理连接问题。很有可能它已经处理了你上面描述过的情况。

答案 2 :(得分:1)

我相信必须要做的事情是支持你的应用程序在后台运行,并且必须采取措施以确保它在被带到前台时正常运行

https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html