2011-06-09 77 views

回答

0

您的移動設備的連接狀態可能經常發生變化且無法預見,因此經常檢查它是明智的。

舉例來說,你在應用程序啓動時檢查,發現沒有網絡可用。你進入離線模式,但幾分鐘後你可以進入WI-FI區域,或者你的3G信號可能更強。如果你不再檢查一次,你將失去進入在線模式的可能性。

事實上,與網絡請求持續的時間(比如:發送登錄請求並等待響應)相比,檢查網絡可用性相當快,因此您可以根據自己的策略安全地執行檢查,無論是每次請求,每隔5分鐘,還是其他任何請求。

編輯:

你關注到審批程序:你應該確保你的應用程序有一個合理的行爲,當沒有連接它可用。簡單地向用戶顯示警報(而不是崩潰)對於Apple來說已經足夠了,但是您也可以使用禁用所有與網絡相關的按鈕或任何適合您的應用程序的按鈕。這個想法是,當沒有連接可用時,你的應用程序不應該瘋狂地行爲。

如果你想要更高級的行爲,你可以檢查每個請求的可達性。

您也可以使用可達性通知服務(ASIHTTP捆綁的可達性包括該功能)。你可以找到一個如何去here。但在我看來,只需在需要時進行檢查就容易多了。 YMMV

+0

好的。比方說,我有一個離線模式,我顯示一些數據已經存儲在設備上,然後在那種情況下,我不想每次都顯示警報消息。在這種情況下,我可以使用Rechability通知我有關連接的可用性,以便我可以顯示警報並要求用戶登錄? – hburkule 2011-06-09 15:32:51

2

不,如果無法到達主機,ASIHTTPRequest將返回超時錯誤/連接失敗錯誤。您可以使用這些錯誤向用戶顯示某些內容,告訴他們他們的登錄失敗。

+0

好的。那麼,ASIHttpRequest會在內部使用Rechability?我問的原因是,我聽說蘋果會拒絕不符合Rechability的應用程序來測試連接。 – hburkule 2011-06-09 15:28:36

+0

ASI確實爲某些東西使用了可達性,但我不知道具體是什麼。但是,蘋果公司從不拒絕應用程序不使用可達性 - 只要你向用戶說明發生了什麼,那麼無論用什麼方法來檢測沒有連接,它們都會很好。我已經提交(並已接受)只使用ASIHTTPRequest的應用:) – deanWombourne 2011-06-09 16:57:31

0

從我記得的可達性演示代碼實際上是一個監聽器,所以可以更新一個變量,因爲設備的可達性狀態改變。然後你需要在提出請求前檢查這個變量。 會很驚訝ASIHTTP不會做這種事情。

+0

這很有趣。檢查一個由聽衆修改的變量將是我相信的一個好方法。沒有意識到ASIHttpRequest有這樣的事情。將不得不檢查。 – hburkule 2011-06-09 15:30:41

相關問題