2013-11-26 95 views
0

我的應用程序使用HttpURLConnection從網絡下載數據,因此它要求獲得INTERNET權限。在執行網絡操作之前​​,我應該檢查網絡狀態嗎?

是否也應該檢查設備連接到網絡(通過ConnectivityManagerNetworkInfo)從而增加ACCESS_NETWORK_STATE所請求的權限,或者我應該簡單地嘗試下載數據和處理異常?

Google的Connecting to the NetworkManaging Network Usage指南建議開發人員在嘗試執行網絡操作以檢查「更好的用戶體驗」之前檢查網絡狀態,但我記得閱讀教程(目前我無法找到)告訴只要求真正不可避免的權限,不要嚇跑用戶,更好地「自我控制」。

所以,

  • 是否有某種關於此最佳實踐的?
  • 是否有任何問題沒有問權限和處理異常?
+0

我的意見是,如果你想*做*什麼時候它改變,或者如果你想*改變*取決於國家的東西,你應該只添加額外的權限。例如,如果要在網絡不存在時禁用某項功能(而不是在嘗試通知時)。否則,就像你說的那樣,這只是一個額外的許可來「嚇唬」人們。只是我的意見,但我相信其他人可能會有所不同。 – Geobits

回答

1

即使您在調用遠程服務之前檢查網絡可用性,仍然需要在對話過程中處理連接失敗的情況。需要幾秒鐘的時間才能下載幾百kB的數據,並且您可以隨時斷開連接(用戶甚至可以通過進入飛行模式來打斷您)。

只是讓它對用戶很好。以非侵入性的方式顯示錯誤。