在我的应用程序上运行猴子工具时,我得到了android.view.WindowLeaked异常,我引用了一些堆栈溢出线程,发现在创建弹出窗口时我们需要避免这个,相反,我们需要使用getApplicationContext(),但这会导致BadTokenException
E/AndroidRuntime(5597): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application在搜索完之后,我又找到了这个答案,上面写着
造成此错误的一个原因可能是试图通过非活动的上下文显示应用程序窗口/对话框。
那么如何解决这个问题呢?
发布于 2011-12-01 08:25:12
通常,窗口泄漏是因为您在Activity中不使用Activity方法,而只使用Dialog.show()方法。
当对话框显示和配置您的Activity更改(例如。对话框没有附加窗口,这会导致窗口泄漏。
如果使用兼容性库,则应该使用DialogFragment而不是纯dialog。
发布于 2011-12-01 08:31:15
WindowManager$BadTokenException背后的原因是,您一直在窗口上显示dialog或popupwindow,其上下文现在已不存在。
因此,每当您在活动之间切换或取消任何活动时,都应该始终关闭弹出窗口或对话框。
因此,您可能应该在dilog.dismiss方法中调用onPause ()。
onPause()
{
dilog.dismiss()
}https://stackoverflow.com/questions/8338142
复制相似问题