使用android測試通路web伺服器的webservice時,在MainActivity的主線程中通路webservice,代碼如下:
由于在主線程中通路網絡,android版本為4.3,導緻如下異常:
原因:
android.os.NetworkOnMainThreadException是說不要在主線程中通路網絡,這個是android3.0版本開始就強制程式不能在主線程中通路網絡,要把通路網絡放在獨立的線程中。
解決:
在開發中,為了防止通路網絡阻塞主線程,一般都要把通路網絡放在獨立線程中或者異步線程AsyncTask中。
先在AndroidManifest.xml檔案manifest節點中添加如下配置:
1、想要忽略這些強制政策問題的話,可以在onCreate()方法裡面加上
并在方法上加上@SuppressLint("NewApi"),重試,OK。
2、将網絡通路放到單獨線程中:
MainActivity的相應布局如下:
3、将網絡通路放到異步任務AsyncTask中,代碼如下: