2012-11-15 49 views
0

我最近在網絡之間切換應用(Wi-Fi,3G,LTE,離線)進行了一些測試。我在檢測這個開關時一直在使用Reachability,但是當前應用程序進入「脫機狀態」時,我並不滿意實現。低連接性的最佳實踐?

我基本上只是在無網絡啓動時拋出NSLogs,但我已經看到它在交換機之間關閉。所以我的問題......你如何最好地管理這些事情?在進入「脫機狀態」之前的幾秒鐘無網絡後,您是否給它延遲?或者還有其他方法可以改善這一點嗎?

串流音頻時的大問題..我不想進入這種離線狀態時,只是一個簡單的網絡交換機或小連接丟失。我要做的一件事就是在更改狀態之前等待緩衝區爲空。

回答

1

是的,只需檢查兩次。使用你的例子,當你得到「離線」通知時,你翻轉一個標誌(BOOL claimingOffline)。然後當你的緩衝器清空時,檢查狀態。如果返回在線狀態,則解開前面提到的標誌。如果仍處於離線狀態,則翻轉標誌並進入「離線模式」。這種技術可以讓你等到你真正需要知道的時候(當緩衝器清空時)。否則,你可以使用一個計時器,但它不是最理想的,幾乎沒有優雅...

+0

但是,切換不斷使應用程序進入和退出網絡狀態很有趣。 – MrShoot

+0

這是一個你無法完全處理的問題。你幾乎需要做多個「民意調查」,看看它是否真的改變了狀態或切換...... – HackyStack