android Window Leaked异常的解决方法

在两种情况下,我们会遇到这种问题:

1.当前activity关闭时,还有ProgressDialog在show()

这种情况只需要关闭即可

if (progressDialog != null && progressDialog.isShowing())
{
     progressDialog.dismiss();
}

2.我们通过windowmanager.addView()添加的view还在显示,

解决办法:

调用windowManager.removeViewImmediate()移除View即可,调用removeView()方法不一定起作用。

补充:removeViewImmediate()和removeView()区别:

removeViewImmediate()执行后,view立刻调用onDetachForWindow()方法从window中分离

removeView异步的  所以不保证分离在页面finish之前完成

原文地址:https://www.cnblogs.com/x-bing/p/5594655.html