首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android系统防止泄露窗口

Android系统防止泄露窗口
EN

Stack Overflow用户
提问于 2011-12-01 08:03:02
回答 2查看 1.3K关注 0票数 1

在我的应用程序上运行猴子工具时,我得到了android.view.WindowLeaked异常,我引用了一些堆栈溢出线程,发现在创建弹出窗口时我们需要避免这个,相反,我们需要使用getApplicationContext(),但这会导致BadTokenException

代码语言:javascript
复制
E/AndroidRuntime(5597): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

在搜索完之后,我又找到了这个答案,上面写着

造成此错误的一个原因可能是试图通过非活动的上下文显示应用程序窗口/对话框。

那么如何解决这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-01 08:25:12

通常,窗口泄漏是因为您在Activity中不使用Activity方法,而只使用Dialog.show()方法。

当对话框显示和配置您的Activity更改(例如。对话框没有附加窗口,这会导致窗口泄漏。

如果使用兼容性库,则应该使用DialogFragment而不是纯dialog

票数 3
EN

Stack Overflow用户

发布于 2011-12-01 08:31:15

WindowManager$BadTokenException背后的原因是,您一直在窗口上显示dialogpopupwindow,其上下文现在已不存在。

因此,每当您在活动之间切换或取消任何活动时,都应该始终关闭弹出窗口或对话框。

因此,您可能应该在dilog.dismiss方法中调用onPause ()。

代码语言:javascript
复制
onPause()
{
dilog.dismiss()
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8338142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档