2015-10-09 69 views
0

我正在使用URLConnection.getInputStream()從服務器獲取一些數據,但是當用戶具有弱互聯網連接或用戶是某些數據連接是非常低然後URLConnection.getInputStream()需要很長時間才能執行也返回錯誤如下:URLConnection.getInputStream()需要很長時間才能在弱互聯網連接區域執行

09-29 17:23:54.088:E/SpeedTestLauncher(20661):無法解析主機「門戶。 aceroute.com「:沒有與主機名關聯的地址。

所以我想如果URLConnection.getInputStream()需要超過2秒鐘它會終止本身並做其他工作。因爲我不希望它顯示延遲給用戶,我可以通過顯示數據庫中的舊數據來處理。

所以,例如像這樣下面

的URLConnection CON = url.openConnection(); con.setConnectTimeout(500);

如果連接在500毫秒內沒有建立,所以離開並進一步移動。

在此先感謝。 佳日

回答

0

我想感謝你正在尋找

con.setReadTimeOut(2000); 

Oracle Reference

+1

你的朋友,但我已經習慣了它,我沒有發現它非常有用,因爲這是造成低的網絡區域相同的問題,所以現在作爲替代方案,我使用了join(2000)並將連接代碼放入線程中,所以如果響應在2秒內出現,它將按照它應該的方式工作,但如果不是,則跳過連接部分並執行其餘部分沒有等待響應的工作[注:早些時候我只使用join(),以便當對HTTP的響應只有在所有時間應該完成其他工作]。再次感謝。 – yash

相關問題