android4.0关于socket问题

Socket socket = new Socket();
socket.connect(new InetSocketAddress(ConstData.TCP_IP,
                    ConstData.TCP_PORT), 2000);
通不过去,直接异常处理,这是因为android 3.0+以上 已经不建议在activity中添加耗时操作,要界面和数据脱离。4.0以上的通信都必须放到线程里去做 不能在UI线程。

解决办法,另起线程或Service处理socket。
如果一定要想在UI线程操作,添加如下代码:
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                .detectDiskReads().detectDiskWrites().detectNetwork()
                .penaltyLog().build());
        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                .detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath()
                .build());

 

 

转自:http://blog.sina.com.cn/s/blog_a130052501013qe9.html

posted @ 2012-11-05 19:08  ijustwanttorun  阅读(158)  评论(0)    收藏  举报