开发过程遇到这样一个问题,先贴异常log:
android.view.WindowLeaked:
CommonWebViewActivity has leaked window android.widget.ZoomButtonsController$Container{bf4bd55 V.E...... ......I. 0,0-1080,146} that was originally added here
看到windowLeaked这个很容易就想到是窗体泄漏导致的问题,由于当前页面使用到webView,看到ZoomButtonsController是跟界面缩放相关设置:webView.getSettings.setBuiltInZoomControls(true);
这一设置主要为了实现页面的缩放,设置缩放按钮的出现,但是按钮可以自动隐藏,由于隐藏的过程是渐进的过程,在同一时间如果结束掉包含webView的界面,就会报这一错误,导致程序crash掉,而且是100%复现,头疼了半天,百度一番知道了解决的方法,即结束页面的时候将页面中相关控件移除不会出现该问题:
@Override
public void finish() {
ViewGroup view = (ViewGroup) getWindow().getDecorView();
view.removeAllViews();
super.finish();
}