隐藏自定义对话框时窗口被泄漏

我使用下面的代码来创建一个自定义对话框。

private void alertLoginSuccess() {
        customDialog.loadigText.setText("Login Successful...");
        Glide.with(getApplicationContext())
                .load(R.drawable.tick)
                .into(customDialog.loadigIcon);
        final Handler handler  = new Handler();
        final Runnable runnable = new Runnable() {
            @Override
            public void run() {
                if (customDialog.isShowing()) {
                    customDialog.hide();
                }
                moveToDashboard(session_token);
            }
        };
        handler.postDelayed(runnable, 1000);
    }

当用户成功登录后,将出现登录成功对话框,然后他们将移动到仪表板。

但即时获取以下错误,

android.view.WindowLeaked:Activity com.know.LoginActivity泄露了窗口com.android.internal.policy.impl.PhoneWindow $ DecorView {41ef86e0 GE .... R ..... I。 0,0-169,59},它最初在android.view.ViewRootImpl。(ViewRootImpl.java:388)处添加在android.view.WindowManagerImpl.addView上的android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248)上(WindowManagerImpl.java:69)在android.app.Dialog.show(Dialog.java:286)

我怎样才能解决这个问题?


更换

customDialog.hide();

customDialog.dismiss();

因为当你移动到其他屏幕时,hide()会导致泄漏的窗口错误。

链接地址: http://www.djcxy.com/p/19941.html

上一篇: window is leaked while hiding a custom dialog

下一篇: Android : Window Manager : android view window leaked