android.os.NetworkOnMainThreadException

来源:互联网 发布:php 字节长度 编辑:程序博客网 时间:2024/06/09 15:34

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

 public void onCreate(Bundle savedInstanceState) {

// 详见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) {

    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();   }     };  

原创粉丝点击