android WindowLeaked异常的解决方法
2016-06-02 14:21
597 查看
前些阵子在搞一个app的时候,调用了自定义的Dialog 来作为提示框,但是,总是出现window 窗口泄漏的异常
,后来,重新去看了一下源代码,再去查了一下资料,终于解决了这个问题。
原来, 每一个android的activity都有一个windowManager的窗口管理器,对应的每一个依附在activity上面的对话框,也有一个windowManager,如果,我在finish了activity的时候,没有对这些窗口进行处理,那么就会出现window leadked 这个异常。下面贴一下我写的一个说明程序。
下面这段程序是会发生window leaked异常的。
当 dialog 结束的时候要进行 dismiss()函数的处理。
加上这行代码就行
,后来,重新去看了一下源代码,再去查了一下资料,终于解决了这个问题。
原来, 每一个android的activity都有一个windowManager的窗口管理器,对应的每一个依附在activity上面的对话框,也有一个windowManager,如果,我在finish了activity的时候,没有对这些窗口进行处理,那么就会出现window leadked 这个异常。下面贴一下我写的一个说明程序。
下面这段程序是会发生window leaked异常的。
private void initview() { dialog=new Dialog(context, R.style.myDialogTheme); View view=View.inflate(context,R.layout.return_pre_dialog,null); dialog.setContentView(view); message= (TextView) view.findViewById(R.id.message); cancle= (Button) view.findViewById(R.id.security_cancle); sure= (Button) view.findViewById(R.id.security_ok); cancle.setOnClickListener(this); sure.setOnClickListener(this); dialog.show(); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.security_ok: listener.returnPreClickListener(); dialog.dismiss();//要加上这句,不然会报WindowLeaked异常 break; case R.id.security_cancle: dialog.dismiss(); break; } }
当 dialog 结束的时候要进行 dismiss()函数的处理。
加上这行代码就行
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories