android 访问网络资源出错(TCP,FTP...)

来源:互联网 发布:搭建视频解析接口源码 编辑:程序博客网 时间:2024/06/15 22:11

最近在转android--java,刚开始弄C(linux'下),然后C++(wince、windows),现在是java(android),我都感觉脑子有时有点糊涂,就光写代码风格就大不一样,看得我头昏烟瘴的,这不,昨天需要弄个ftp客户端,网上找了个源码,然后自己加了个页面移植了过来,页面什么的、跳转什么的都没问题,就是连不上PC建的服务器。debug后发现是在connect时,catch  android.os.NetworkOnMainThreadException  网上一查 说是 android 主线程不让访问 网络资源,防止网络请求时间过长造成UI假死现象。没办法,只好看ftp的源码,想把其中的一些网络操作都弄到线程里边去,看了半天发现修改量太大,只好又去网上找解决方法,果真给我找到了,叫什么 严苛模式,主界面强制执行。下面直接讲解决方法:

android 2.3以上:

就在 mainAcvitity 中 onCreate 中加下面的代码:

 try {  
           //Android 2.3及以上调用严苛模式  
           Class sMode = Class.forName("android.os.StrictMode");  
           Method enableDefaults = sMode.getMethod("enableDefaults");  
           enableDefaults.invoke(null);  
       } catch (Exception e) {  
           // StrictMode not supported on this device, punt  
           Log.v("StrictMode", "... not supported. Skipping...");  
       }  


android 2.3之前:

  1. try {  

  2.     StrictModeWrapper.init(this);  

  3. }  

  4. catch(Throwable throwable) {  

  5.     Log.v("StrictMode""... is not available. Punting...");  

  6. }  


0 0
原创粉丝点击