android.os.networkonmainthreadexception怎么解决
发布网友
发布时间:2024-10-01 11:29
我来回答
共3个回答
热心网友
时间:2024-11-30 16:25
在android2.3之后 在主线程中必须使用另一个线程 如handler机制,或者异步任务获取网络数据
如果你访问网络的操作 必须放在主线程中执行,那么 在oncreate()中添加
if (GetVersion.GetSystemVersion() > 2.3) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork()
.penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath()
.build());
}
这样 高版本中也可以在主线程中执行网络操作了
热心网友
时间:2024-11-30 16:25
和network有关的操作一般比较耗时,把这部分操作放到一个子线程里,然后用Handler消息机制与主线程通信.
热心网友
时间:2024-11-30 16:26
这是你在主线程里面执行了网络操作,把他放到子线程就好。