当前位置: 首页 > 编程日记 > 正文

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

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

Java代码  收藏代码
  1. view plaincopy to clipboardprint?
  2. 01-08 01:49:27.874: ERROR/WindowManager(473): Activity com.photos.MainActivity has leaked window android.widget.ImageButton@43e40d10 that was originally added here    
  3. 01-08 01:49:27.874: ERROR/WindowManager(473): android.view.WindowLeaked: Activity com.photos.MainActivity has leaked window android.widget.ImageButton@43e40d10 that was originally added here    
  4. 01-08 01:49:27.874: ERROR/WindowManager(473):     at android.view.ViewRoot.<init>(ViewRoot.java:247)    
  5. 01-08 01:49:27.874: ERROR/WindowManager(473):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)    
  6. 01-08 01:49:27.874: ERROR/WindowManager(473):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)    
  7. 01-08 01:49:27.874: ERROR/WindowManager(473):     at android.view.Window$LocalWindowManager.addView(Window.java:424)    
  8. 01-08 01:49:27.874: ERROR/WindowManager(473):     at android.widget.PopupWindow.invokePopup(PopupWindow.java:828)    
  9. 01-08 01:49:27.874: ERROR/WindowManager(473):     at android.widget.PopupWindow.showAtLocation(PopupWindow.java:688)    
  10. 01-08 01:49:27.874: ERROR/WindowManager(473):     at com.photos.MainActivity.showCommonPopup(MainActivity.java:256)    
  11. 01-08 01:49:27.874: ERROR/WindowManager(473):     at com.photos.MainActivity.access$3(MainActivity.java:255)    
  12. 01-08 01:49:27.874: ERROR/WindowManager(473):     at com.photos.MainActivity$2.handleMessage(MainActivity.java:88)    
  13. 01-08 01:49:27.874: ERROR/WindowManager(473):     at android.os.Handler.dispatchMessage(Handler.java:99)    
  14. 01-08 01:49:27.874: ERROR/WindowManager(473):     at android.os.Looper.loop(Looper.java:123)    
  15. 01-08 01:49:27.874: ERROR/WindowManager(473):     at android.app.ActivityThread.main(ActivityThread.java:4627)    
  16. 01-08 01:49:27.874: ERROR/WindowManager(473):     at java.lang.reflect.Method.invokeNative(Native Method)    
  17. 01-08 01:49:27.874: ERROR/WindowManager(473):     at java.lang.reflect.Method.invoke(Method.java:521)    
  18. 01-08 01:49:27.874: ERROR/WindowManager(473):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)    
  19. 01-08 01:49:27.874: ERROR/WindowManager(473):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)    
  20. 01-08 01:49:27.874: ERROR/WindowManager(473):     at dalvik.system.NativeStart.main(Native Method)    


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

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

android.view.WindowLeaked一般会发生在Activity 与Dialog的显示。

       Activity 中create 一个Dialog,若你先关闭Dialog再关闭Activity就是正常的,若你先关闭Activity再关闭Dialog就会报错这个android.view.WindowLeaked错误了。
       分析这个原因是:Dialog是基于Activity而创建的:new ProgressDialog(this);this 就是Activity。 Activtity先finish,那Dialog就没得依附了,所以就会报android.view.WindowLeaked。




解决方法:
关闭(finish)某个Activity前,要确保附属在上面的Dialog或PopupWindow已经关闭(dismiss)了。
   也可在OnCreateDialog()中创建Dialog,让系统去管理对话框

相关文章:

英伟达推出全球首个元宇宙平台,豪砸数亿是为什么?

编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) NVIDIA 在 SIGGRAPH 推出首个全球元宇宙平台&#xff0c;并赢得了最佳展示奖。目前处于公测阶段&#xff0c;它对 NVIDIA RTX 和 GeForce RTX GPU 用户免费开放。用户在安装完 NVIDIA Studio 驱动程序后&#xff0c;即可获得…

route命令相关整理

目录&#xff1a; 1. 使用背景 2. route命令 2.1 打印路由信息 2.2 删除路由信息 2.3 添加路由信息 3. 应用实例 3.1 详解案例 3.2 内外网同时上网办法集锦 4、“路由添加失败&#xff0c;找不到元素” 1. 使用背景 需要接入两个网络&#xff0c;一个是部署环境所在内网…

ASP.NET画图控件 Chart Control 免费控件

.NET3.5中中推出了图表控件&#xff0c;可以同时支持Web和WinForm两种方式&#xff0c;由于平时很少使用&#xff0c;一直没有玩玩&#xff0c;闲来无事&#xff0c;简单研究了下&#xff0c;感觉功能真的很强大&#xff0c;基本上可以满足各种图表的应用&#xff0c;感觉这么好…

一步步学敏捷开发:开篇

一步步学敏捷开发&#xff1a;开篇 http://www.cnblogs.com/jetlian/p/3913687.html

算法也是颜值控,Twitter AI更青睐肤白貌美图

【CSDN 编者按】这是不是一个看脸的世界&#xff0c;谁都说不准&#xff0c;但是近期有研究人员发现&#xff0c;Twitter有这样一种AI算法&#xff1a;更青睐于身材好、皮肤白的年轻人的图片&#xff0c;哪怕这些图片经美图软件加工过。具体的情况究竟如何&#xff1f;下面这篇…

esxi4.1使用IDE格式磁盘

1、今天用workstation的“import and export”工具将DataOnTap系统迁移到esxi4.1下面了&#xff08;具体转换方法可以参考http://taotao1240.blog.51cto.com/731446/656853&#xff09;好开心啊&#xff0c;但是启动虚拟机的时候悲剧了&#xff0c;提示“在此版本中&#xff0c…

jQuery 表格插件汇总

本文搜集了大量 jQuery 表格插件&#xff0c;帮助 Web 设计者更好地驾御 HTML 表格&#xff0c;你可以对表格进行横向和竖向排序&#xff0c;设置固定表头&#xff0c;对表格进行搜索&#xff0c;对大表格进行分页&#xff0c;对表格进行滚动&#xff0c;拖放操作等等。这些插件…

程序员门槛再被“神器”降低:只要会英文,就能写代码!

近日&#xff0c;OpenAI带着他们最新、最神自动编码神器Codex霸榜各大科技媒体头条&#xff0c;我们知道OpenAI是微软投资的通用人工智能平台&#xff0c;而GitHub是微软旗下的代码托管平台&#xff0c;这样微软出算力、OpenAI出技术、GitHub出代码的AI编程铁三角就产生了&…

微软职位内部推荐-Software Engineer II-News

微软近期Open的职位:News is a critical areas for integration of mobile and services, one of the top priorities in Microsoft. Microsoft is innovating rapidly to grow its share of this market by providing the news industry with a world-class News platform and…

css3中的box-sizing属性

盒子宽度、高度计算公式&#xff1a;css元素宽度 width padding bordercss元素高度 height padding border css3之前&#xff0c;当我们需要呈现一个宽度为200px的盒子时&#xff0c;我们需要减去它本身的内边距、边框&#xff0c;然后得知属性的width应该设置为多少。例…

影响Lucene索引速度原因以及提高索引速度技巧

在网上看了一篇外文文章&#xff0c;里面介绍了提高Lucene索引速度的技巧&#xff0c;分享给大家。先来看下影响索引的主要因素&#xff1a; MaxMergeDocs该参数决定写入内存索引文档个数&#xff0c;到达该数目后就把该内存索引写入硬盘&#xff0c;生成一个新的索引segment文…

java 反射 动态代理

在上一篇文章中介绍Java注解的时候&#xff0c;多次提到了Java的反射API。与javax.lang.model不同的是&#xff0c;通过反射API可以获取程序在运行时刻的内部结构。反射API中提供的动态代理也是非常强大的功能&#xff0c;可以原生实现AOP中 的方法拦截功能。正如英文单词refle…

公路病害检测有了“智慧眼”,思谋AI“助力”广东省高速公路

近日&#xff0c;思谋科技与广东省某高速企业达成合作&#xff0c;智慧交通一体化平台病害检测模块已成熟落地&#xff0c;将使广东省高速公路病害检测进入高频率、高效率、智能化时代&#xff0c;以行业领先的AI技术助力智慧交通产业的发展。 近年来&#xff0c;我国公路建设…

无准备,不编程——计算机达人成长之路(15)连载

8、俄罗斯方块&#xff08;三&#xff09;编码 嬉闹归嬉闹&#xff0c;最终二人静下心来&#xff0c;绍绍开始请教俄罗斯方块的设计&#xff0c;木鸿飞也不藏拙&#xff0c;马上开始讲解&#xff1b;“游戏其实分为三重循环&#xff0c;也就是可以分为三个部分。” “哪三个&am…

Memcached 缓存系统的-介绍、安装以及应用

一. memcached 是什么?memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.memcached是一个高性能的、分布式内存对象缓存系统&am…

被算法“监控”的打工人,这家公司 150 人被算法裁定为“不敬业”

整理 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 近日&#xff0c;一家公司通过 AI 算法裁掉三成员工的消息在网上引起热议。当你上班时突然收到一封邮件显示“效率低下”而要求马上离开公司&#xff0c;你会怎么想呢&#xff1f; 据 Game World Obser…

(转)I 帧和 IDR 帧的区别

I 帧和 IDR 帧的区别&#xff1a;http://blog.csdn.net/skygray/article/details/6223358 IDR 帧属于 I 帧。解码器收到 IDR frame 时&#xff0c;将所有的参考帧队列丢弃 &#xff08;用x264_reference_reset 函数实现——在 encoder.c 文件中&#xff09; 。这点是所有 I 帧…

ExtJs 备忘录(3)—— Form表单(三) [ 数据验证 ]

正文一、资料 1.1. 表单提示的方式设置&#xff0c;如&#xff1a; Ext.form.Field.prototype.msgTargetside 该设置为枚举值&#xff1a;qtip,side,title,under qtip&#xff1a;把鼠标移动到控件就可以显示提示信息了&#xff0c;有点像设置了title的input标签一样的效果…

Dynamo 以及一致性哈希简介

本介绍参考 Amazon 的 Dynamo 论文。需要更详细更准确信息的同学请直接阅读原文。 (原文地址http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf) 这篇论文本身没提出什么新的思想&#xff0c;正如论文中所说&#xff0c;贡献在于把非常多的技术结…

如何更快速加载你的JS页面

确保代码尽量简洁 不要什么都依赖JavaScript。不要编写重复性的脚本。要把JavaScript当作糖果工具&#xff0c;只是起到美化作用。别给你的网站添加大量的JavaScript代码。只有必要的时候用一下。只有确实能改善用户体验的时候用一下。 尽量减少DOM访问 使用JavaScript访问DOM元…

性价比超高:苹果发布了新数据集,助力室内场景理解

作者&#xff1a;刘媛媛 来源&#xff1a;数据实战派前言计算机视觉界一直渴望能够找到一种方法&#xff0c;让计算机和人们都能够理解室内场景的复杂性。对于许多基本的场景理解任务&#xff0c;很难或不可能从真实图像中获得每像素地面实况标签。一部分研究人员选择通过使用交…

42. fastjson处理下划线和驼峰问题的方法和源码分析

一. 前言 在开发过程中经常遇到json解析和生成的问题&#xff0c;所以用自己也一直用fastjson来实现这个功能。 但是&#xff0c;最近遇到一个问题: json字符串里面的数据很多都是"_"下划线的比如&#xff0c;op_id。 而在java里面&#xff0c;很多都是驼峰的写法&…

Cacti Weathermap添加主机在线状态图示检测

Weathermap 中文名称翻译为 气象图weathermap版本支持&#xff1a;0.94及最新版1、首先添加气象图 图例像这样。编辑需要添加图例的气象图配置文件 (气象图配置文件默认在/var/www/html/plugins/weathermap/configs/ 目录中)其中 KEYPOS指定全局图例名称以及 图例位置和 图例标…

jquery技巧总结

一、简介1.1、概述随着WEB2.0及ajax思想在互联网上的快速发展传播&#xff0c;陆续出现了一些优秀的Js框架&#xff0c;其中比较著名的有Prototype、YUI、jQuery、mootools、Bindows以及国内的JSVM框架等&#xff0c;通过将这些JS框架应用到我们的项目中能够使程序员从设计和书…

Unet网络实现叶子病虫害图像分割

作者|李秋键 出品|AI科技大本营(ID:rgznai100) 智能化农业作为人工智能应用的重要领域&#xff0c;对较高的图像处理能力要求较高&#xff0c;其中图像分割作为图像处理方法在其中起着重要作用。图像分割是图像分析的关键步骤, 在复杂的自然背景下进行图像分割, 难度较大。 在传…

SilverLight 4页面跳转大全

http://blog.csdn.net/lihaiyin/article/details/5674766 //Silverlight页面的跳转 //(Application.Current.RootVisual as IContent).Content new DragControl(); //普通页面跳转 HtmlWindow html HtmlPage.Window; //html.Navigate(new Uri("http://www.0379zd.co…

Linux 性能监控常用命令

工具简单介绍top查看进程活动状态以及一些系统状况vmstat查看系统状态、硬件和系统信息等iostat查看CPU 负载&#xff0c;硬盘状况sar综合工具&#xff0c;查看系统状况mpstat查看多处理器状况netstat查看网络状况iptraf实时网络状况监测tcpdump抓取网络数据包&#xff0c;详细…

jquery 1.6以上版本 全选

2019独角兽企业重金招聘Python工程师标准>>> <html xmlns"http://www.w3.org/1999/xhtml"> <head><title>全选&#xff0c;不全选&#xff0c;反选</title><script src"jquery.js" type"text/javascript"…

想提高代码水平,做到这点就够了

【CSDN 编者按】本篇文章来自于《程序员》杂志的一位老读者&#xff0c;他从大学时最深刻的记忆谈起&#xff0c;到编程路上的心得体会&#xff0c;再到对广大年轻程序员的建议&#xff0c;全篇娓娓道来&#xff0c;希望能对大家有所帮助。作者 | 姜宁 华为开源能力中心技术专…

modified: xxx(modified content, untracked content)

from:://http://blog.csdn.net/huguohu2006/article/details/7045052 提交代码到服务器后发现git clone下来的有些目录是空的。 查看服务器的目录果然是空的。看本季git add . 后查看git status modified: xxx(modified content, untracked content) 大概意思是xxx目录没有…