一个bug

过年上班第一天 app就报出一个bug,由于负责这块的同时还没来上班,得自己上去改这块bug。

原理是一个容器中添加一个webview,在这个webview跳到某个特定的url时,截取url,新增一个webview在这个新的webview中继续之前的url,完成后续的淘宝app调用后,再把新增的webviewremove掉。

用了一天的时间才搞找到原因: shouldOverrideUrlLoading中的一个方法

String nowUrl = view.getUrl();
			
			if (!TextUtils.isEmpty(nowUrl) && isInsidePage(nowUrl) && !isInsidePageAndNotGoshop(url)&&!urlCache.equals(nowUrl)) {
				Parameters parameters = UrlUtils.splitUrlQuery(url);
				String iswap = parameters.getParameter("iswap");
				if(!TextUtils.isEmpty(iswap)) {
					if (!iswap.equals("1")) {
						outsideWebView = getOutSideWebView(USER_AGENT);
					} else {
						outsideWebView = getOutSideWebView(M_USER_AGENT);
					}
				} else {
					outsideWebView = getOutSideWebView(null);
				}
				outsideWebView.loadUrl(url);
				Log.d("webtest", "addout");
				rootWebView.addView(outsideWebView,new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
				
				
				return true;
			}

new webview 新增两次!

原来html的前端开发突然神奇的使用了锚点,导致判断代码出现错误新增两次

http://m.xxx.com/super/

http://m.xxx.com/super/#apple-fa 这就是使用了锚点的url

总结

1.没事看看同事的代码,改别人的代码很恶心

2.改别人负责的bug是先整理别人的思路

3.改bug要静下心 

remove后 view还在的情况,可能情况

1.remove失效 引用还在 

2.有多个子view

我解决bug是习惯用debug的方式,加上机器卡 很慢 效率低 , 一个childcount 就什么都知道了 

4.解决问题还是要治本 在发现原因前条用removeallview的方法是可以解决问题的 但是隐患还在  解决问题治本 深入研究 成长的才快




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值