“android.os.NetworkOnMainThreadException”---关于Android4.0后无法将访问网络放入主线程中的解决办法

今天主管出差,布置的任务又做完了,终于有时间做点自己有兴趣的事情了!


刚刚研究了下android服务器与客户端的交互,我先是用纯java代码的方式在PC上测试了一下客户端访问服务器(客户端Eclipse,服务器MyEclipse),没有发现什么问题,两者可以互发,互收数据。于是将代码移植到了android程序中,做了一个手机端登录的demo(联网操作需要在Manifest中加入权限),用模拟器测试,pass通过;而当我安装到真机上的时候居然报错!检查了一下log_cat原来出现了一个“android.os.NetworkOnMainThreadException”,翻译一下,就是网络在主线程上的错误!当然这个时候需要的就是万能的度娘啦,搜索了一下,果然,在2.3以后的android系统中,不能将访问网络的操作放在主线程中。找到原因,废话不多说,改起!


new Thread(){ 
@Override 
public void run() { 
// TODO Auto-generated method stub 
super.run(); 
//加入访问网络的操作!
handler.sendEmptyMessage(0); //将消息0传给handler
} 
}.start(); 
接着就是与thread相关的handler出场了!
public void handleMessage(Message msg) { 
switch (msg.what) { 
case 0://接收消息0

//返回相关ui操作
break; 
} 
}; 


欧了,把网络操作放在子线程中,问题解决,login_success!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值