多线程Bug
项目需求需要在每个url后加上固定的参数
于是用到拦截器
使用过程中在联想手机上出现Bug 启动报错 而且偶尔才会有
一般遇到偶尔才会出现的bug 想到的肯定是多线程之间出了问题
这个时候debug是完全无用的 只能通过打log的方式
在出现问题的地方打印出每个的值,看看值每次都是否格式一致
最终 在出问题的方法上加上同步锁即可
-
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]; }
-
静以修身 俭以养德