zoukankan      html  css  js  c++  java
  • android.os.NetworkOnMainThreadException

    在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();
    		}
        };
  • 相关阅读:
    【转】ASP.NET页面刷新方法总结
    GridView点击超链接时弹出小窗口
    VS2008增加AJAX Control Toolkit3.5支持(组图)
    水晶报表中"已达到系统管理员配置的最大报表处理作业数限制"错误的处理
    asp.net 在使用Response.Redirect try{}catch{}块失效
    【转】ASP.NET的五大数据控件浅谈
    ASP.NET生成随机密码
    ASP.NET Web应用程序和ASP.NET网站的区别
    使用ArcGIS GP服务之一框架介绍
    mysql索引的类型和优缺点
  • 原文地址:https://www.cnblogs.com/leischen/p/2989902.html
Copyright © 2011-2022 走看看