has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView
来源:互联网 发布:蚁群算法tsp问题原理 编辑:程序博客网 时间:2024/05/24 01:42
Activity"xxAcitivy" has leaked window com.android.internal.policy.impl.PhoneWindow$DecorViewXXXX that was originally added here
当eclipse爆出这个错误时,很典型的一种情况就是activity和dialog同时显示,你将activity finish()掉了,但是忘记dismiss() dialog或者先finish()的activity,后dismiss()的dialog。
这个错误虽然不影响程序运行,但是看着自己辛辛苦苦写的东西,eclipse居然报这么多的错误,相信大家都会不爽。所以,赶紧在activity finish()之前,将dialog dismiss()掉吧!!
解决办法:添加权限 android.permission.REORDER_TASKS 允许程序改变Z轴排列任务(不一定)
异常场景:
经常在应用中需要处理一些耗时的工作,诸如读取大文件、访问网络资源等。为了避免因程序假死而带来的糟糕用户体验,通常我们可以通过线程+Handler或者Android提供的AsyncTask来解决该问题,并一般以ProgressDialog等提示性控件来告知用户当前的程序进度。而标题中描述的异常则会常常出现在这样的场景中,并且往往掩盖了导致异常的真正的罪魁祸首。
问题原因:
从异常描述中,大致的意思是存在窗口句柄泄露,即未能及时销毁某个PhoneWindow。而这往往误导了我们,把过多的精力放在查找所谓的内存泄露上了。其实存在这么一种情况,即因我们在非主线程中的某些操作不当而产生了一个严重的异常,从而强制当前Activity被关闭。而在关闭的同时,却没能及时的调用dismiss来解除对ProgressDialog 等的引用,从而系统抛出了标题中的错误,而掩盖了真正导致这个错误的异常信息。
解决方法之一:
本解决方法并不能真正的解决问题,但是在一定程度上可以将真正导致错误的异常信息显露出来。即重写Activity的onDestroy方法,在方法中调用dismiss来解除对ProgressDialog 等的引用。
- has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView
- has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView
- [Android开发-异常]xxxActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView
- ERROR/WindowManager(***): Activity *** has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@*** that was ori
- Activity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView
- has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@2c58b888 that was original
- Error:activity xxx has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@41971600
- Activity has leaked window com.android.internal.policy.impl.PhoneWindow
- MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$
- leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@405241b0 that was originally ad
- com.com.adapterdialog.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$De
- Activity com.hotel.ui.LoginActivity has leaked window com.android.internal.policy.impl.PhoneWindow
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added
- Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added
- matlab批量读取同一目录下的txt文件
- 基于visual Studio2013解决C语言竞赛题之1026判断排序
- DB2数据库之命令行执行存储过程(以@符结束)
- jquery div拖动效果示例代码
- 匿名方法的使用
- has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView
- php扩展开发
- Lambda表达式及其优势
- android中activity的生命周期
- 程序学习第3个月——2D、3D的抉择
- Java 并发Executors 和线程池
- 01背包的四种解法详解:动态规划,贪心法,回溯法,优先队列式分支限界法(C语言编写)
- DSP/BIOS详解入门
- Java线程-Timer定时器