天天看点

android之android.os.NetworkOnMainThreadException异常

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