在iOS中使用套接字处理不同应用程序状态的正确方法是什么?

时间:2011-11-03 09:01:25

标签: objective-c ios sockets

假设我在iOS上有一个客户端应用程序,它使用C套接字连接到服务器。 我收到并发送此套接字上的数据。

现在用户关闭了App,所以其他东西(让我们说检查他的邮件)并返回到应用程序。

我的(一堆)问题:
如何处理套接字连接? 您是否应该关闭它并在重新启动应用程序时尝试重新打开套接字? 或者我可以打开插座吗?如果是这样,连接上收到的数据会发生什么?

需要考虑的其他情况是:

  • 我不知道用户何时返回应用程序。
  • 我不知道用户是否留在同一个网络中。

由于

2 个答案:

答案 0 :(得分:1)

我会关闭连接并在应用开始关注后打开一个新的连接。我几个月前写了一个应用程序,应用程序与无线电台播放服务器通话以显示一些信息。 - 你不知道应用程序在后台停留了多长时间 - 您不知道用户是否在同一网络中 - 你不知道用户是否忘记了后台生活应用中的静止状态 ...

我会投票支持关闭套接字连接。

答案 1 :(得分:1)

当应用程序即将“重新激活”时,应关闭连接并[如有必要]保存接收的数据。

连接无法在后台运行。并且您不会在后台收到任何数据。

当应用程序从后台恢复时,重新打开连接并继续。

这些方法可以帮助您跟踪应用程序的状态

– applicationWillResignActive:
– applicationDidEnterBackground:
– applicationWillEnterForeground: