博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android.os.NetworkOnMainThreadException
阅读量:6260 次
发布时间:2019-06-22

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

在android 2.3上设计的下载程序,在android 4.0上运行时报android.os.NetworkOnMainThreadException异常,原来在4.0中,访问网络不能在主程序中进行,有两个方法可以解决,一个是在主程序中增加:

 

Java代码
  1. // 详见StrictMode文档 
  2. StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() 
  3.         .detectDiskReads() 
  4.         .detectDiskWrites() 
  5.         .detectNetwork()   // or .detectAll() for all detectable problems 
  6.         .penaltyLog() 
  7.         .build()); 
  8. StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() 
  9.         .detectLeakedSqlLiteObjects() 
  10.         .detectLeakedClosableObjects() 
  11.         .penaltyLog() 
  12.         .penaltyDeath() 
  13.         .build()); 
// 详见StrictMode文档        StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()                .detectDiskReads()                .detectDiskWrites()                .detectNetwork()   // or .detectAll() for all detectable problems                .penaltyLog()                .build());        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()                .detectLeakedSqlLiteObjects()                .detectLeakedClosableObjects()                .penaltyLog()                .penaltyDeath()                .build());

另一种是启动线程执行下载任务:

       public void onCreate(Bundle savedInstanceState) {

Java代码
  1.       super.onCreate(savedInstanceState); 
  2.       setContentView(R.layout.main); 
  3.       // 启动线程执行下载任务 
  4.       new Thread(downloadRun).start(); 
  5.   } 
  6.    
  7.   /**
  8.    * 下载线程
  9.    */ 
  10.   Runnable downloadRun = new Runnable(){ 
  11.  
  12. @Override 
  13. publicvoid run() { 
  14.     // TODO Auto-generated method stub 
  15.     updateListView(); 
  16.   }; 
super.onCreate(savedInstanceState);        setContentView(R.layout.main);        // 启动线程执行下载任务        new Thread(downloadRun).start();    }        /**     * 下载线程     */    Runnable downloadRun = new Runnable(){		@Override		public void run() {			// TODO Auto-generated method stub			updateListView();		}    };

转载于:https://www.cnblogs.com/leischen/archive/2013/03/30/2989902.html

你可能感兴趣的文章
python ----字符串基础练习题30道
查看>>
python 调用aiohttp
查看>>
跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
查看>>
升级fedora 18到fedora 19
查看>>
11月20日学习内容整理:jquery插件
查看>>
获取页面中所有dropdownlist类型控件
查看>>
读《淘宝数据魔方技术架构解析》有感
查看>>
[转载]如何破解Excel VBA密码
查看>>
【BZOJ】2563: 阿狸和桃子的游戏
查看>>
Android对话框-中篇-之建立自己的对话框
查看>>
导出一个数据库中的表中的某一条数据
查看>>
IOS开发工程师欢迎你加入宏略信息
查看>>
hdu1503
查看>>
js 获取两个日期相差的天数--自定义方法
查看>>
应用程序实现关闭屏幕
查看>>
责任链模式
查看>>
(转)Unity中protobuf的使用方法
查看>>
**PHP转义Json里的特殊字符的函数
查看>>
数据扩展性探讨和总结--转
查看>>
C# 导出资源文件到硬盘
查看>>