博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决Android3.0之后不能在主线程中进行HTTP请求
阅读量:6454 次
发布时间:2019-06-23

本文共 665 字,大约阅读时间需要 2 分钟。

在Android3.0以后,会发现,只要是写在主线程(就是Activity)中的HTTP请求,运行时都会报错,这是因为Android在3.0以后为了防止应用的ANR(aplication Not Response)异常。

针对此问题有两种解决的方法:

1.可以再Activity的onCreate()方法中加入这样一段代码,如下:

1  if (Build.VERSION.SDK_INT >= 11) {      2      StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());    3      StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());  4  }

这样后就可以在主线程中进行网络操作了

2.一般情况我们应该这样做

  启动一条子线程进行你的网络请求。

  当然,如果你的应用程序执行的网络请求数据量很小的话,可以使用第一种方案。

  

 

转载于:https://www.cnblogs.com/falzy/p/5763848.html

你可能感兴趣的文章
elementUI默认样式修改不成功的问题
查看>>
Win8 使用经验之飞鸽传书
查看>>
How to set up PyQt4 for python 3.2 in Ubuntu11.10
查看>>
P1047 校门外的树
查看>>
poj1472[模拟题]
查看>>
c# 两个数组比较,将重复部分去掉,返回不重复部分
查看>>
支持IE6的树形节结构TreeTable实际应用案例
查看>>
DFA和NFA的区别
查看>>
并发检测主机ip存活脚本
查看>>
Leetcode 118 杨辉三角
查看>>
VBA中级班课时1小结
查看>>
PLS-00371: 'PAGEQUERY_PACK.CURSORTYPE' 最多允许有一个声明
查看>>
upc组队赛5 Ingenious Lottery Tickets【排序】
查看>>
HTML初级课程 (自学可懂)
查看>>
Error in deleting blocks.
查看>>
Linux 用户和用户组的命令
查看>>
操作系统 实验三、进程调度模拟程序
查看>>
NOIP2000提高组 单词接龙
查看>>
CSS常见的浏览器前缀
查看>>
【转】Eclipse中 代码提示时间修改和悬停(Hover)提示时间修改
查看>>