多线程Bug

项目需求需要在每个url后加上固定的参数

于是用到拦截器
使用过程中在联想手机上出现Bug 启动报错 而且偶尔才会有
一般遇到偶尔才会出现的bug 想到的肯定是多线程之间出了问题
 
这个时候debug是完全无用的 只能通过打log的方式
在出现问题的地方打印出每个的值,看看值每次都是否格式一致
 
最终 在出问题的方法上加上同步锁即可
    1. publicsynchronizedstaticBasicNameValuePair getValues(int i){
      if(valuePairs==null){
          valuePairs =newBasicNameValuePair[5];
          valuePairs[0]=newBasicNameValuePair("channels",SPUtils.getInstance().getString("channel"));
         valuePairs[1]=newBasicNameValuePair("appVersion",AppUtil.getVersion(UIUtils.getContext()));
          valuePairs[2]=newBasicNameValuePair("deviceUUID",AppUtil.getUniqueIdentification(UIUtils.getContext()));
          valuePairs[3]=newBasicNameValuePair("deviceModel",AppUtil.getDeviceModel(UIUtils.getContext()));
          valuePairs[4]=newBasicNameValuePair("deviceVersion",AppUtil.getDeviceVersion(UIUtils.getContext()));
        }
        return valuePairs[i];
      }    
      

        

 





静以修身 俭以养德
原文地址:https://www.cnblogs.com/Android-MR-wang/p/5070018.html