Android窗体泄露问题-创新互联

最近遇到这样一个问题:

创新互联建站作为成都网站建设公司,专注成都网站建设、网站设计,有关企业网站建设方案、改版、费用等问题,行业涉及自拌料搅拌车等多个领域,已为上千家企业服务,得到了客户的尊重与认可。

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:这次我就是倒在了这里,完全没注意到更早打印的错误日志。。。--!)第三种情况我还没遇到过就不说了。

本文只是记录开发中遇到花了比较多时间不容易发现的问题。。马克

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:Android窗体泄露问题-创新互联
地址分享:http://scyanting.com/article/eggoj.html