`

Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$

 
阅读更多
分析的很经典,一招毙敌...
http://www.cnblogs.com/royenhome/archive/2011/05/20/2051879.html

引用
异常场景:
经常在应用中需要处理一些耗时的工作,诸如读取大文件、访问网络资源等。为了避免因程序假死而带来的糟糕用户体验,通常我们可以通过线程+Handler或者Android提供的AsyncTask来解决该问题,并一般以ProgressDialog等提示性控件来告知用户当前的程序进度。而标题中描述的异常则会常常出现在这样的场景中,并且往往掩盖了导致异常的真正的罪魁祸首。

问题原因:
从异常描述中,大致的意思是存在窗口句柄泄露,即未能及时销毁某个PhoneWindow。而这往往误导了我们,把过多的精力放在查找所谓的内存泄露上了。其实存在这么一种情况,即因我们在非主线程中的某些操作不当而产生了一个严重的异常,从而强制当前Activity被关闭。而在关闭的同时,却没能及时的调用dismiss来解除对ProgressDialog等的引用,从而系统抛出了标题中的错误,而掩盖了真正导致这个错误的异常信息。

解决方法之一:
本解决方法并不能真正的解决问题,但是在一定程度上可以将真正导致错误的异常信息显露出来。即重写Activity的onDestroy方法,在方法中调用dismiss来解除对ProgressDialog等的引用。
分享到:
评论

相关推荐

    MongoDB入门到云上开发视频.zip

    课时7:MongoDB数据库排错日志分析.mp4 课时8:MongoDB数据库安全机制.mp4 课时9:MongoDB数据库高可用集群架构.mp4 课时10:深入MongoDB数据库运维与容器化.mp4 课时11:MongoDB索引原理及使用.mp4 课时12:MongoDB...

    第4课:静态路由故障排除.rar

    在IT领域,网络管理和故障排除是一项至关重要的技能,特别是对于静态路由的管理。静态路由是一种网络管理员手动配置的路由方式,它与动态路由相反,后者是通过路由协议自动学习并更新路由表。本课程“第4课:静态...

    tomcat排错经典案例之404.docx

    ### Tomcat 排错经典案例之 404 错误详解 #### 一、问题背景及概述 在搭建 `Struts2 + Spring + Hibernate` 框架的过程中,遇到了常见的 HTTP 404 错误。这类错误通常出现在 Web 应用程序中无法找到指定资源的情况...

    八爪鱼功能与排错-对外培训.mmap.km

    八爪鱼功能与排错-对外培训.mmap.km

    Windows用户态程序高效排错(01-02).rar

    在Windows操作系统中,用户态程序高效排错是一个关键的技能,尤其对于软件开发者和系统管理员来说,能够快速定位和解决问题是提升工作效率的关键。本压缩包文件"Windows用户态程序高效排错(01-02).rar"可能包含了两...

    Android代码演示大全

    非常实用的安卓代码学习资源,通过这些代码,让你在短时间内掌握Android的一些基础玩法! Android工程: 1.json数据传输 2.listview带翻页 3.radio和checkbox 4.RelativeLayout 5.ROM文件读写 6.SD卡读写 7.spinner...

    Windows.用户态程序高效排错 熊力.pdf.tar.gz

    《Windows用户态程序高效排错》是熊力撰写的一本技术书籍,主要针对Windows操作系统下进行用户态程序的调试和问题解决。这本书深入浅出地介绍了如何在Windows环境下高效地定位和解决用户态程序的错误,是软件开发...

    Kali Linux渗透测试(安全牛).txt

    │ 任务060:交换、无线渗透实操:AIRCRACK-NG基础、AIRODUMP-NG排错.mp4 │ 任务061:AIREPLAY-NG.mp4 │ 任务062:Mac地址绑定.mp4 │ 任务063:WPA.mp4 │ 任务064:COWPATTY 密码.mp4 │ 任务065:WPS.mp4 │ ...

    js基础实战2-排错题-题目_20230221144605.md

    js基础实战2-排错题-题目_20230221144605.md

    WebPack的高级扩展使用

    WebPack安装-使用-Loader-配置-插件-环境-排错详解(上) 博客地址:http://blog.csdn.net/pcaxb/article/details/53390151 下载地址:http://download.csdn.net/detail/pcaxb/9696873 WebPack安装-使用-Loader-配置...

    系统启动测试及排错红旗Linux授权认证培训.pptx

    系统启动测试及排错红旗Linux授权认证培训.pptx

    [详细完整版]软件工程习题.pdf

    9. 排错工作中找到错误位置通常是大部分工作,因此选择A:95%。 10. 分层数据流图的顶层描述了系统的总体概况,选择A:总貌。 11. 数据流图中,数据流命名是为了明确数据流动方向,而文件命名则标识数据存储,两者...

    ASA防火墙最实用的排错思路和4种工具.doc

    思科推荐的排错流量: ①ping直连测试,如果不通,就检查接口配置。 ②查看路由,如果没有就写静态或者动态。 ③Packer tracer模拟一个数据包通过,看看ASA防火墙的处理过程。 ④使用Capture分别抓取收包和发包接口...

    Eclipse 进行 ANT 时错误 Javadoc failed java.io.IOException Cannot run program javadoc

    在Eclipse集成开发环境(IDE)中使用ANT...对于Eclipse中显示的具体错误信息和相关截图,由于本次提供内容中仅包含了标题、描述、标签,并未提供实际的错误日志或截图,因此具体的排错步骤还需参考错误输出的实际内容。

    tcpip实验报告二(排错工具ping和trace).pdf

    实验报告主要围绕TCP/IP协议栈中的两个重要排错工具——ping和trace,它们在网络诊断和故障排查中扮演着关键角色。以下是对这两个工具及其相关知识点的详细解释: 1. **ping工具**: - **功能**:ping是基于ICMP...

    基于Android的无线点餐系统开题报告.doc

    基于 Android 的无线点餐系统开题报告 本科毕业设计(论文)开题报告是基于 Android 的无线点餐系统的设计和实现,旨在解决传统点餐系统的不足,以提高餐厅服务效率和客户满意度。该系统由 Android 客户端、无线...

    android webview 与 JS 相互调用

    webView.loadUrl("javascript:window.Android.showAlert('Hello from Android!')"); ``` 4. **GPS地理定位** - 在Android中,获取GPS位置通常使用`LocationManager`和`LocationListener`。 - 首先,确保用户...

    VC安装排错SHSQL.DLL EESWT.DLL NMSQL.DLL

    本案例中,我们遇到了一个关于"VC安装排错SHSQL.DLL, EESWT.DLL, NMSQL.DLL"的问题。这些是动态链接库(DLL)文件,对于Windows操作系统中的某些应用程序来说是至关重要的组件。DLL文件包含了可执行代码和数据,多个...

    FortiGate Cookbook 5.4 (英文)

    - 排错工具使用方法 #### 六、总结 《FortiGate Cookbook 5.4》为用户提供了一个全面的FortiGate配置指南,不仅包含了基本的网络配置操作,还深入探讨了高级功能的设置方法以及系统管理和故障排查等实用技巧。对于...

Global site tag (gtag.js) - Google Analytics