如何处理WindowLeaked?

时间:2017-04-06 09:08:20

标签: java android

我在Stacktrace中有WindowManager:android.view.WindowLeaked,我必须处理它。

我知道出现的原因,但修复它会花费太多时间。

所有我需要捕捉它像典型的例外,例如:

try {} catch (WindowLeaked e) {}

但这并不是肯定的,因为它不是Exception

有什么办法吗?

我不会问 如何修复什么是WindowLeaked

问题是:我怎么知道WindowLeak发生了?

2 个答案:

答案 0 :(得分:1)

您的问题的答案是您的申请无法“知道”何时发生。尽管它具有非常规名称,但android.view.WindowLeaked是Java例外。但是,它是无法捕获的,因为它不会在调用堆栈上没有应用程序代码的任何上下文中抛出。

(显然,它根本没有被抛出。相反,它似乎被用作捕获堆栈跟踪以进行日志记录的方法。这看起来很奇怪,因为堆栈跟踪并没有告诉你太多...给出了它上面没有应用程序代码!)

你(程序员)可以知道它已经发生了(通过阅读logcat!)但你无能为力......除了追查根本原因并修复它。

答案 1 :(得分:0)

窗口泄漏异常通常发生在用户打开视图但未关闭视图时。