WindowManager:MainActivity泄露了原始窗口com.android.internal.policy.impl.PhoneWindow$DecorView@40731aa0

elf*_*foz 0 java android

这个警告是什么意思?我开发了一个Android应用程序,我在logcat中看到了这个警告.此警告不会导致关闭应用程序.一切都没有任何问题或中断,但它可能导致我的应用程序中看不到的一些问题?

Continue logcat:    at android.view.ViewRoot.<init>(ViewRoot.java:261)
                        atandroid.view.WindowManagerImpl.addView(WindowManagerImpl.java:170)....
Run Code Online (Sandbox Code Playgroud)

kal*_*pvs 10

这样做的原因的例外是,您Activity正在通过调用破坏finish()Activity或其他一些Exception在被抛出Activity,而你Dialog正显示出..

解决方案是dismiss()在退出Activity之前调用您在视图中创建的Dialog,例如在onPause().在离开Activity之前,应该关闭所有窗口和对话框.如果你不解除对话框,它会给你那个例外.

如下

@Override
protected void onStop() {
    super.onStop();
    if (dialog!=null) {
        if (dialog.isShowing()) {
            dialog.dismiss();       
        }
    }
}
Run Code Online (Sandbox Code Playgroud)