使用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中,代码如下: