Android 窗体泄露问题
2015-12-16 16:59
357 查看
最近遇到这样一个问题:
E/WindowManager(30314): android.view.WindowLeaked: Activity com.xxxxxx.www.activity.XXXActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{52b0f3ac V.E..... R......D 0,0-120,95} that was originally added here;
这是一个窗体泄露的异常,普遍的解决方案是令窗体(dialog或者popupwindow)dismiss()在activity.finish()之前,这样的思路是正确的的,但是并不是很全面,有时候会发现即使你的代码里面把窗体先关闭了,依然会出现这个问题,今天在stack overflow上面找到一个比较全面的答案这里分享给大家 先上链接http://stackoverflow.com/questions/2850573/activity-has-leaked-window-that-was-originally-added
这里提供了3个答案分别对应三种情况,第一种如上所说,窗体关闭在activity关闭之后,第二种情况其实跟第一种的原因是一样的,但是导致activity关闭的原因并不是我们主动关闭activity,而是捕获到了异常导致了activity提前关闭,然后当我们去调用窗体展示的时候然出现了这个异常,所以真正需要我们去解决的其实是比这个窗体泄露异常更早出现的异常(ps:这次我就是倒在了这里,完全没注意到更早打印的错误日志。。。--!)第三种情况我还没遇到过就不说了。
本文只是记录开发中遇到花了比较多时间不容易发现的问题。。马克
E/WindowManager(30314): android.view.WindowLeaked: Activity com.xxxxxx.www.activity.XXXActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{52b0f3ac V.E..... R......D 0,0-120,95} that was originally added here;
这是一个窗体泄露的异常,普遍的解决方案是令窗体(dialog或者popupwindow)dismiss()在activity.finish()之前,这样的思路是正确的的,但是并不是很全面,有时候会发现即使你的代码里面把窗体先关闭了,依然会出现这个问题,今天在stack overflow上面找到一个比较全面的答案这里分享给大家 先上链接http://stackoverflow.com/questions/2850573/activity-has-leaked-window-that-was-originally-added
这里提供了3个答案分别对应三种情况,第一种如上所说,窗体关闭在activity关闭之后,第二种情况其实跟第一种的原因是一样的,但是导致activity关闭的原因并不是我们主动关闭activity,而是捕获到了异常导致了activity提前关闭,然后当我们去调用窗体展示的时候然出现了这个异常,所以真正需要我们去解决的其实是比这个窗体泄露异常更早出现的异常(ps:这次我就是倒在了这里,完全没注意到更早打印的错误日志。。。--!)第三种情况我还没遇到过就不说了。
本文只是记录开发中遇到花了比较多时间不容易发现的问题。。马克
相关文章推荐
- Android布局属性详解
- Android内存优化杂谈
- Android 目录结构
- android开发的学习路线
- Android实战 - 音心播放器 (MusicActivity - 倒计时 ,进度条实现)
- Android 序列化
- android自定义vendor介绍
- 每日Android1_launchMode
- Androidstudio每次生成APK自增版本号、自动命名
- 关于Android打造一款适用所有view的刷新和加载
- android自定义标题不能填满父控件处理方式
- Android开发环境的搭建
- Android BroadcastReceiver获取用户拨打的电话号码
- [Android实例] 【第一节】android增量升级之生成so文件
- Crazy Android Note Chapter-9
- Android(Lollipop/5.0) Material Design(七) 自定义动画
- Android 4.4.2 - java.lang.RuntimeException: Performing stop of activity that is not resumed
- Android启动过程的底层实现
- Android-数据库详解之二:数据库用法介绍
- Jenkins构建Android项目持续集成之单元测试及代码覆盖率