使用Dialog出现的has leaked window和not attached to window manager
2016-07-28 17:43
363 查看
1、Activity关键代码:
2、错误和异常信息:
3、说明:
has leaked window(窗体泄漏):dialog.show();finish();注意这两行代码,当弹窗显示在屏幕中,Activity却被销毁了(就是没有在Activity销毁之前及时调用dialog.dismiss)。该错误不会导致应用崩溃。not attached to window manager:注意看代码,子线程睡眠1秒后调用了dialog.dismiss。当发生窗体泄漏过后,再调用dialog.dismiss时就会出现该异常。
4、解决办法:
DialogFragment:
用DialogFragment代替,不直接使用Dialog。非要直接使用Dialog的话:
1:在Activity生命周期onDestroy里加上dialog.dismiss()。2:或者在Dialog.dismiss方法里加上判断(窗体泄漏依然存在)
@Override
public void dismiss() {
if (activityIsFinish()) return;
super.dismiss();
}
相关文章推荐
- 【POJ 1979】Red and Black
- Django入门:template之过滤器
- 机器学习入门
- python 函数应用
- jmeter
- 安装ASSETS下的APK,(拷贝到本地安装)
- IOS-- UIView中的坐标转换
- centos5 下 lida 调试环境搭建
- 有关浏览器兼容问题
- 通信时地址的简单设置
- AngularJS 所有版本下载
- 【jQuery】纯js的右下角弹窗
- RNN以及LSTM的介绍和公式梳理
- 【hdu 2795】Billboard 【线段树训练 3】
- 开发代理 AFNetworking 解析失败
- 关于出现Unhandled exception at 0x091f11c7 in ****: 0xC0000005: Access violation reading location 0x0ab0f
- 基于口令和证书认证(TrueLicense)的接口调用工具库的封装设计 By 嗡汤圆
- java通过jni调用c++
- EditText
- bzoj1066(网络流)