网络连接不能放在主线程

android 4.0 以上

网络连接不能放在主线程

4.0 以下 好像可以

在Android4.0以后,会发现,只要是写在主线程(就是Activity)中的HTTP请求,运行时都会报错,这是因为Android在4.0以后为了防止应用的ANR(aplication Not Response)异常,即使这里表达不是很清晰,大家应该都明白吧,哈哈

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

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

if (Build.VERSION.SDK_INT >= 11) {

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads  ().detectDiskWrites().detectNetwork().penaltyLog().build());

StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());

}

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

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

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

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

android 放入主线程,android网络请求不能放在主线程相关推荐

  1. android网络请求不能放在主线程

    网络连接不能放在主线程 android 4.0 以上    网络连接不能放在主线程 4.0 以下 好像可以 在Android4.0以后,会发现,只要是写在主线程(就是Activity)中的HTTP请求 ...

  2. Android 避免主线程执行网络请求之Activity/Fragment 结束后处理异步回调

    大家都知道Android涉及到与UI相关的操作只能在主线程执行 android4.0以后就禁止在主线程进行网络请求了,在主线程里面执行Http请求都会报NetworkOnMainThreadExcep ...

  3. android搭建网络框架,Android 搭建MVP+Retrofit+RxJava网络请求框架(三)

    上一篇中主要是将mvp+rxjava+retrofit进行了结合,本篇主要是对mvp框架的优化:建议先去看上一篇:Android 搭建MVP+Retrofit+RxJava网络请求框架(二) 针对vi ...

  4. Android Asynchronous Http Client-Android异步网络请求客户端接口

    1.简介 Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnect,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使用and ...

  5. android 请求方式有哪些,Android中的几种网络请求方式详解

    Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面整理四种常用网络请求方式. java.net包中的HttpURLConnection类 Get方式: // Get方式请求 ...

  6. android界面之美---自定义网络请求进度加载对话框

    1.定义进度对话框类 <span style="font-size:18px;">public class ProgressDialog {public Dialog ...

  7. Android 9.0以上HTTP网络请求被限制解决方案

    问题 Android 9.0以上系统,HTTP网络访问请求被限制:但是HTTPS无影响. Android 10系统同样有此问题. 为保证访问安全,Android P以上要求网络请求必须为Https:H ...

  8. Android 页面或文件或网络请求时的加载动画

    //加载图片或页面或网络请求时出现加载动画 public Class LoadingAnimation{ private static LoadingAnimation loadingAnimatio ...

  9. android+MVP+Retrofit+RxJava做网络请求

    1.MVP+Retrofit+RxJava做网络请求2.GreenDao把第一页的数据缓存到数据库,列表实现上拉加载更多,下拉刷新功能 3.列表中的图片(img字段)使用Fresco进行加载 4.Re ...

最新文章

  1. FreeBSD控制台分辨率调整
  2. 操作系统 第四章【存储器管理】【MOOC答案】
  3. 【原理】解析一致性哈希算法
  4. EMOS1.3安装后的相关安全设置
  5. poi数据导入arcgis,结合POI数据的道路自动选取方法
  6. post如何获取到referrer_如何使用 ThinkJS 优雅的编写 RESTful API
  7. python训练手势分类器_从Scikit Learn中保存的训练分类器进行预测
  8. VS2013 Codejock 实现 MFC 换肤
  9. 程序员的mysql经典pdf_程序员的SQL金典 杨中科著 中文 PDF版
  10. springBean生命周期
  11. 对抗样本的创建和防御
  12. CAJ转Word有哪些既免费还不限制页数的转换工具?
  13. Windows Workflow Foundation中实现人工活动的demo,按照XPDL规范的实现
  14. 银联收单清算体系及处理流程
  15. Mybatis-There is no getter for property named 'tj' in 'class
  16. input框不允许输入负数
  17. R语言之基本统计分析
  18. Ubuntu 打开命令行终端窗口的几种方式
  19. 2021.2.25课程摘要(逻辑教育-王劲胜)
  20. [附源码]Nodejs计算机毕业设计校园快递代取平台Express(程序+LW)

热门文章

  1. Linux 测试端口的连通性的四种方法
  2. JDK1.8安装以及环境变量配置(win10)
  3. 路径规划之PRMRRT类算法分析
  4. Appium-Send SMS(发送短信)
  5. java backlog满_深入理解Linux TCP backlog
  6. Kaggle猫狗大战升级版VGG16处理
  7. python自动化-坐标定位方法offset_position_click()
  8. 垃圾信息转场移动应用 打击应与时俱进
  9. return; return 0; return -1; return 1之间的区别
  10. C语言 return 0 和return 1有什么区别