2013-02-13 20 views
1

我有一個應用程序不斷從服務器連接讀取狀態更新。網絡活動指標和異步套接字

所有與流委託處理所有讀取和寫入異步處理。

應用程序沒有任何部分「等待」來自服務器的特定響應,它只是持續處理狀態更新,因爲它們偶爾從套接字到達。客戶端沒有等待響應的請求。

我想知道在這種情況下網絡活動指標的最佳做法是什麼。

我可以在流事件處理程序中打開它,在我們離開處理程序之前關閉它,但這會是一個非常短的時間(正好足夠進行非阻塞讀取或寫入)。嘗試這一點,我只看到指示器最微弱的閃爍;它需要比事件處理程序中的時間更長。

如何在流代理中打開它並設置一個定時器以在短時間內關閉它? (這將確保它足夠長的時間才能看到,而不是在流委託中花費的時間很短)。

注意:我試過了最後一個想法:只要有流活動,就打開網絡活動指示器,並且注意NSDate;然後在一個定時器中(我每隔1秒發射一次),如果經過的時間大於.5秒,我關閉指示器。這似乎給出了網絡活動的合理指示。

有什麼更好的建議?

回答

0

如果網絡活動是連續的,那麼它聽起來像對用戶可能有些惱人,特別是如果它始終打開和關閉。

也許更好的辦法是測試缺少迴應達到某個超時值,然後如果您沒有收到服務器的任何響應,則向用戶顯示警報視圖。如果您可以向用戶提供反饋(例如「上次更新:5分鐘前」),那麼即使這也是可選的。

+0

狀態更新不是連續的,而是零星的(每分鐘左右)。我沒有結婚更新網絡活動指標;但是,當您使用App Store拒絕的網絡接口時,不使用該指示燈? – Dale 2013-02-13 15:39:01

+0

@戴爾是的,我不確定蘋果拒絕該應用程序;這當然是可能的。 – trojanfoe 2013-02-13 15:42:52