zoukankan      html  css  js  c++  java
  • android.os.NetworkOnMainThreadException 异常处理

    项目是2.1开发 测试手机是android4.0时候提示 android.os.NetworkOnMainThreadException异常

    出错误地方是访问网络的webservice有问题

    在网上找了半天说是用

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
    // TODO Auto-generated method stub
    String strVer=GetVersion.GetSystemVersion();
    strVer=strVer.substring(0,3).trim();
    float fv=Float.valueOf(strVer);
    if(fv>2.3)
    {
    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
    .detectDiskReads()
    .detectDiskWrites()
    .detectNetwork() // 这里可以替换为detectAll() 就包括了磁盘读写和网络I/O
    .penaltyLog() //打印logcat,当然也可以定位到dropbox,通过文件保存相应的log
    .build());
    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
    .detectLeakedSqlLiteObjects() //探测SQLite数据库操作
    .penaltyLog() //打印logcat
    .penaltyDeath()
    .build()); 
    }
    super.onCreate(savedInstanceState);
    
    }

    代码注意 StrictMode是2.3以上版本才有的没办法我又把项目升级成2.3

    但这样做2.3以下版本安装完成后打开后就报错,在调用StrictMode之前做了下版本判断

     从 Android 2.3 开始提供了一个新的类 StrictMode,该类可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者改进程序,使主线程处理 UI 和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞。

    给 Android 应用开发者的十个建议

    android.os.Build.VERSION.RELEASE;返回当前系统版本

    以上问题可以解决。

    注意:造成这样的错误原因是代码不符合Android规范,如果把上面访问方式改为异步操作就不会出现在4.0上访问出现 android.os.NetworkOnMainThreadException异常

     如:

    new Thread(){
    @Override
    public void run(){
    //你要执行的方法
    //执行完毕后给handler发送一个空消息
    handler.sendEmptyMessage(0);
    }
    }.start();
    
     
    
    //定义Handler对象
    private Handler handler =new Handler(){
    @Override
    //当有消息发送出来的时候就执行Handler的这个方法
    public void handleMessage(Message msg){
    super.handleMessage(msg);
    //处理UI
    }
    };

    转载自:http://www.cnblogs.com/freexiaoyu/archive/2012/04/13/2445707.html

  • 相关阅读:
    POJ 1251 Jungle Roads
    1111 Online Map (30 分)
    1122 Hamiltonian Cycle (25 分)
    POJ 2560 Freckles
    1087 All Roads Lead to Rome (30 分)
    1072 Gas Station (30 分)
    1018 Public Bike Management (30 分)
    1030 Travel Plan (30 分)
    22. bootstrap组件#巨幕和旋转图标
    3. Spring配置文件
  • 原文地址:https://www.cnblogs.com/sy171822716/p/2918212.html
Copyright © 2011-2022 走看看