我有一个应用程序,它不断地从服务器连接读取状态更新。
一切都与流委托一起工作得很好,以异步处理所有读取和写入。
应用程序中没有任何部分“等待”来自服务器的特定响应,它只是不断地处理状态更新,因为它们偶尔会从套接字到达。客户端没有等待响应的请求。
我想知道在这种情况下,网络活动指示器的最佳做法是什么。
我可以在流事件处理程序中打开它,然后在我们离开处理程序之前关闭它,但这将是一个非常短的时间(刚好足以发生非阻塞读取或写入)。尝试这个,我只看到指示器最微弱的闪烁;它需要比仅在事件处理程序期间更长的时间。
在流委托中打开它,然后设置一个计时器在短时间内关闭它呢?(这将确保它有足够长的时间被看到,而不是在流代理中花费的时间很短。)
注意:我已经尝试过最后一个想法:只要有流活动就打开网络活动指示器,并注意 NSDate;然后在计时器(我每 1 秒触发一次)中,如果经过的时间大于 0.5 秒,我会关闭指示器。这似乎给出了网络活动的合理指示。
有更好的推荐吗?