2018-01-26小米手机while循环不执行bug修复存疑
在lz最近的Android开发过程中遇到了一件很神奇的事情,唯独小米的手机会发生这种情况,我在接受服务器的数据时开了一个线程去接受数据,其中加了一个while循环,当我们第一次执行的时候它不会出错,刚开始以为是自己的代码错误,但是第二次执行的时候它就不执行了代码如下:
//客户端向服务器发送数据及返回数据
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public Map send(String jsonlogin){
cs.setNeedMessage(null);
send=new String[4];
map=new HashMap();
String re=cs.send(jsonlogin);
//判断发送数据
if(re.equals("发送异常:")){
send[0]=re;
map.put("order","发送异常:");
}else{
send[0]=re;
//System.out.println("send[0]-----"+send[0]);
while (true){
if (cs.getNeedMessage()!=null) {
String a=cs.getNeedMessage();
map=JsonToEntity.RoomJSON(a);
break;
}
}
}
return map;
}
}
其中加粗的部分就是我们用打桩输出的时候找到问题的所在,而且神奇的事情就在这个时候发生了,当我们在while(true){}的开始加上一段输出后,这个问题就解决了,而且是随便输出什么都可以!!即使这样都可以,不知道有没有大神能解释一下为什么.
while (true){
if (cs.getNeedMessage()!=null) {
System.out.println("");
String a=cs.getNeedMessage();
map=JsonToEntity.RoomJSON(a);
break;
}
}