caohuicong 2016-12-11
首先明确一点出现此错误并不是代表代码错误。
在android2.3之后在主线程中禁止直接访问网络,必须使用另一个线程如handler机制,或者异步任务获取网络数据,下面给出两种解决方案。
1、如果你想直接在主线程中访问网络,请使用第一种方法,该方法简单暴力,但不推荐使用。
我们只需要在onCreate方法的setContentView(R.layout.activity_main);后面加上这样一段代码即可:
if(android.os.Build.VERSION.SDK_INT>9){
StrictMode.ThreadPolicypolicy=newStrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
2、既然不能在主线程中连网,那我们就新建一个线程来操作网络数据,推荐使用该方法。
newThread(){
@Override
publicvoidrun(){
//把要连网的代码放在这里
}
}.start();