关于Android开发中的android.os.networkonmainthreadexception问题
首先明确一点出现此错误并不是代表代码错误。
在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();
相关推荐
zzqLivecn 2020-07-09
Nostalgiachild 2020-11-13
韩伟佳 2020-10-09
wuleihenbang 2020-09-16
chenjinlong 2020-06-10
yinbaoshiguang 2020-06-09
sgafdsg 2020-06-04
ustcrding 2020-06-03
chenjinlong 2020-06-03
AndroidGA 2020-06-01
安辉 2020-05-27
绿豆饼 2020-05-26
CNETNews 2020-05-26
xilove0 2020-05-12
绿豆饼 2020-05-12
ChainDestiny 2020-05-07
doomvsjing 2020-05-07
hqulyc 2020-05-05
lyccsu 2020-04-30