1

我有一个应用程序,它不断地从服务器连接读取状态更新。

一切都与流委托一起工作得很好,以异步处理所有读取和写入。

应用程序中没有任何部分“等待”来自服务器的特定响应,它只是不断地处理状态更新,因为它们偶尔会从套接字到达。客户端没有等待响应的请求。

我想知道在这种情况下,网络活动指示器的最佳做法是什么。

我可以在流事件处理程序中打开它,然后在我们离开处理程序之前关闭它,但这将是一个非常短的时间(刚好足以发生非阻塞读取或写入)。尝试这个,我只看到指示器最微弱的闪烁;它需要比仅在事件处理程序期间更长的时间。

在流委托中打开它,然后设置一个计时器在短时间内关闭它呢?(这将确保它有足够长的时间被看到,而不是在流代理中花费的时间很短。)

注意:我已经尝试过最后一个想法:只要有流活动就打开网络活动指示器,并注意 NSDate;然后在计时器(我每 1 秒触发一次)中,如果经过的时间大于 0.5 秒,我会关闭指示器。这似乎给出了网络活动的合理指示。

有更好的推荐吗?

4

1 回答 1

0

如果网络活动是连续的,那么听起来它可能会让用户有些恼火,特别是如果它一直在打开和关闭。

也许更好的方法是测试在某个超时值之前是否缺少响应,然后如果您没有从服务器获得任何响应,则向用户显示警报视图。如果您可以向用户提供反馈(例如“上次更新:5 分钟前”),那么即使这也是可选的。

于 2013-02-13T12:36:34.250 回答