这里有新鲜出炉的精品教程,程序狗速度看过来!
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
这篇文章主要介绍了 Android 中 android.view.WindowLeaked 的解决办法的相关资料, 需要的朋友可以参考下
Android 中 android.view.WindowLeaked 的解决办法
按字面了解,Window Leaked 大概就是说一个窗体泄漏了,也就是我们常说的内存泄漏,为什么窗体会泄漏呢?
产生原因:
我们知道 Android 的每一个 Activity 都有个 WindowManager 窗体管理器,同样,构建在某个 Activity 之上的对话框、PopupWindow 也有相应的 WindowManager 窗体管理器。因为对话框、PopupWindown 不能脱离 Activity 而单独存在着,所以当某个 Dialog 或者某个 PopupWindow 正在显示的时候我们去 finish() 了承载该 Dialog(或 PopupWindow) 的 Activity 时,就会抛 Window Leaked 异常了,因为这个 Dialog(或 PopupWindow) 的 WindowManager 已经没有谁可以附属了,所以它的窗体管理器已经泄漏了。
解决方法:
关闭 (finish) 某个 Activity 前,要确保附属在上面的 Dialog 或 PopupWindow 已经关闭 (dismiss) 了。
比如:
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (mDialog != null) {
- mDialog.dismiss();
- }
- }
来源: http://www.phperz.com/article/17/0613/335218.html