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();
    		}
        };
  • 相关阅读:
    zabbix4.2.5常见问题指南
    postgres常用运维sql
    centos7部署inotify与rsync实现实时数据同步
    postgres主从基于流复制
    postgres高可用学习篇三:haproxy+keepalived实现postgres负载均衡
    postgres高可用学习篇二:通过pgbouncer连接池工具来管理postgres连接
    postgres高可用学习篇一:如何通过patroni如何管理3个postgres节点
    centos7安装yum安装pip
    nginx1.15.10配置使用非https访问返回403
    zabbix4.2.5自定义告警模板
  • 原文地址:https://www.cnblogs.com/leischen/p/2989902.html
Copyright © 2011-2022 走看看