程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> android 4 0-連接網絡異常java.net.SocketTimeoutException

android 4 0-連接網絡異常java.net.SocketTimeoutException

編輯:編程綜合問答
連接網絡異常java.net.SocketTimeoutException

我用模擬器Android2.3.3版本跑,是可以連接網絡獲取到數據的,但用真機(Android4.0版本)運行就出現android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
......
網上說在onCreate()方法裡面加上
StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
但我添加之後就出現上面的問題:java.net.SocketTimeoutException: failed to connect to /172.16.58.88 (port 8080) after 5000ms

希望高手能給予指導,謝

最佳回答:


Android4.0以後就不能再主線程中進行網絡請求等費時性操作,要不然就會報anr異常,這主要也是從用戶體驗的角度考慮問題的,想象一下,如果你手機
網速比較慢時,這個時候請求了一個網絡數據,在數據沒有返回時,你的界面就不會有任何可供展示的數據,就一直卡在那裡,影響用戶體驗。
new Thread(){
public void run(){
// 做網絡請求操作
}
}.start();
就可以解決問題了。如果需要網絡數據請求後做一些處理,就可以用到handler這個類去編寫代碼。

win15677335854
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved