关于android.view.WindowLeaked异常的解决方案

虽然是小问题一个,但也困扰了我一段时间,现在记下来,给自己做个备忘,也可以给其他人一个参考。

Android.view.WindowLeaked按字面了解,Window Leaked大概就是说一个窗体泄漏了,也就是我们常说的内存泄漏,为什么窗体会泄漏呢?

产生原因:
我们知道Android的每一个Activity都有个WindowManager窗体管理器,同样,构建在某个Activity之上的对话框、PopupWindow也有相应的WindowManager窗体管理器。因为对话框、PopupWindown不能脱离Activity而单独存在着,所以当某个Dialog或者某个PopupWindow正在显示的时候我们去finish()了承载该Dialog(或PopupWindow)的Activity时,就会抛Window Leaked异常了,因为这个Dialog(或PopupWindow)的WindowManager已经没有谁可以附属了,所以它的窗体管理器已经泄漏了。

解决方法:
关闭(finish)某个Activity前,要确保附属在上面的Dialog或PopupWindow已经关闭(dismiss)了。

时间: 2024-08-29 03:07:54

关于android.view.WindowLeaked异常的解决方案的相关文章

【Android】常见异常 —— android.view.WindowLeaked 分析以及解决办法

问题虽小,不过不知道还是比较麻烦的.异常信息: 10-22 10:19:38.651 12723-12723/cn.com.zte.uc E/WindowManager﹕ android.view.WindowLeaked: Activity cn.com.zte.uc.activites.shipTicket.OrderWrite1 has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{423fee70

关于android.view.WindowLeaked(窗体泄露)的解决方案

虽然是小问题一个,但也困扰了我一段时间,现在记下来,给自己做个备忘,也可以给其他人一个参考 Java代码   view plaincopy to clipboardprint? 01-08 01:49:27.874: ERROR/WindowManager(473): Activity com.photos.MainActivity has leaked window android.widget.ImageButton@43e40d10 that was originally added he

关于 android.view.WindowLeaked: 窗体泄露

一.问题 E/WindowManager: android.view.WindowLeaked: Activity com.jeany.demo.MainActivity has leaked window [email protected][] that was originally added here at android.view.ViewRootImpl.<init>(ViewRootImpl.java:485) at android.view.WindowManagerGlobal

android.view.WindowLeaked的解决方法

Android.view.WindowLeaked一般会发生在Activity中Dialog的显示. android的dialog创建的时候会传入一个参数this,就是当前的activity,dialog必须在Activity销毁之前放掉,否则就会报windowleaked的错误. 分析这个原因是: Dialog是基于Activity而创建的:new ProgressDialog(this):this 就是Activity.Activtity先finish,那Dialog就没得依附了,所以就会报

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

Activity has leaked window android.widget.ZoomButtonsController that was originally added here android.view.WindowLeaked: 引起这个错误的原因是: 发现是webview的 ZoomButton,也就是那两个放大和缩小的按钮,导致的.如果设置为让他们出现,并且可以自动隐藏,那么,由于他们的自动隐藏是一个渐变的过程,所以在逐渐消失的过程中如果调用了父容器的destroy方法,就会导

android.view.WindowLeaked: Activity com.xty.activity.ActivityMainPage has leaked window com.android.

android.view.WindowLeaked: Activity com.xty.activity.ActivityMainPage has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{41331978 V.E..... R.....I. 0,0-480,226} that was originally added here 在通过dialog上的按钮跳转到另外一个activity时要关闭dial

android.view.WindowLeaked的解决办法

来源: 按字面了解,Window Leaked大概就是说一个窗体泄漏了,也就是我们常说的内存泄漏,为什么窗体会泄漏呢? 产生原因: 我们知道Android的每一个Activity都有个WindowManager窗体管理器,同样,构建在某个Activity之上的对话框.PopupWindow也有相应的WindowManager窗体管理器.因为对话框.PopupWindown不能脱离Activity而单独存在着,所以当某个Dialog或者某个PopupWindow正在显示的时候我们去finish()

Android之——常见Bug及其解决方案

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46942139 1.android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 解决方案:将getApplication改成xxxx.this 2.call you are unregister onbrocastRevicer?

Android View measure (五) 支持margin属性,从一个异常说起

先来看下代码 一.查看夏目 1. 自定义控件 public class CustomViewGroup extends ViewGroup { ...... @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); // 遍历所有子视图,进行measure操作 for (int i =