android webview ZoomButtonsController 导致android.view.WindowLeaked 问题彻底解决

来源:互联网 发布:南京品浪钓具淘宝店 编辑:程序博客网 时间:2024/05/18 02:10

转载地址:http://blog.csdn.net/dreamer0924/article/details/34082687

Activity has leaked window Android.widget.ZoomButtonsController that was originally added here android.view.WindowLeaked:

引起这个错误的原因是:

发现是webview的 ZoomButton,也就是那两个放大和缩小的按钮,导致的。如果设置为让他们出现,并且可以自动隐藏,那么,由于他们的自动隐藏是一个渐变的过程,所以在逐渐消失的过程中如果调用了父容器的destroy方法,就会导致Leaked。
所以解决方案是,在destroy之前,先让他俩立马消失。
至于立马消失的方法,网上大多抄来抄去,没有效果。
我的解决办法是,在finish掉此activity时,把子view 全部remove掉。理论上说,只需要remove这个zoom view就可以,但是我没找到获取该view的办法,只好remove掉所有的子view。这样在activity destroy时就不会报WindowLeaked的错误了。

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. @Override  
  2. public void finish() {  
  3.     ViewGroup view = (ViewGroup) getWindow().getDecorView();  
  4.     view.removeAllViews();  
  5.     super.finish();  
  6. }  
0 0
原创粉丝点击