「NetworkOnMainThreadException」:Android 2.3到Android 4.0上传文件的问题

在Android 4.0系统中,由于主线程不允许进行网络操作的规定,之前的文件上传代码失效。通过将上传操作置于新线程中解决了这一问题。

我在百度知道上的提问: 

『之前我用的一段文件上传的代码,配合服务器端的servlet,实现了上传手机上的文件的功能;但是后来我把手机的Android系统从2.3升级到了4.0 ,同样的代码,同样的配置,这段代码却不能实现上传了,不知为何?
代码:http://pan.baidu.com/s/1i3unYxJ

在stackoverflow上还发现4.0相对2.3的一些网络方面的函数有所改动。

 

大神回答:

『4.0以后在主线程,也就是UI线程中是不可以发送网络请求的,目的是防止阻塞线程,会报ANR错误,也就是程序未响应错误。

 顺带提一下,service也是运行在主线程中的,在其中发起网络连接也是要新建一个线程的。』

果然把unploadFile()变成一个新的线程就好了!

谢谢大神。

 

http://zhidao.baidu.com/question/1637612654537574740.html?from=pubpage&msgtype=2

 ------------------------JAN18,2014------------------------------

再一次遇到这个问题,上次LOGCAT没有HINT,今天直接提示了:

 

转载于:https://www.cnblogs.com/larrylawrence/p/3515935.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值