Android(安卓)中报错 W/System.err: android.os.NetworkOnMainThreadException
16lz
2022-03-28
Android 中报错 W/System.err: android.os.NetworkOnMainThreadException
-
- 1. 原因
- 2. 解决
-
- 2.1 方法一 (访问少)
- 2.1 方法二 (推荐)
1. 原因
主线程中进行网络请求异常, Android4.0 版本开始后就强制程序不能在主线程中访问网络, 要把访问网络放在独立的子线程中.
2. 解决
在 AndroidManifest.xml 文件中开启访问权限
<uses-permission android:name="android.permission.INTERNET"/>
2.1 方法一 (访问少)
在 Activity 的 onCreate() 方法中添加, 忽略这些强制策略.
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);
2.1 方法二 (推荐)
创建新的线程, 启动一条子线程进行你的网络请求.
// Android 4.0 之后不能在主线程中请求 HTTP 请求new Thread(() -> { // do something... The code of the request URL}).start();
更多相关文章
- android 笔记 --- Android界面刷新的方法
- Android(安卓)数据库SQLite的使用简单Demo
- android完全退出程序
- Android(安卓)APK应用安装原理(1)-解析AndroidManifest原理-Pack
- 2010-03-03 传智播客—Android(五)数据存储之五网络数据交互
- Android(安卓)ButterKnife框架的使用方法
- android lru缓存 辅助类LruCache源码解析
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用