首页 文章

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

提问于
浏览
1

我使用以下代码来创建自定义对话框 .

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 G.E ..... R .....我 . 0,0-169,59}最初是在android.view.WindowManagerImpl.addView的android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248)的android.view.ViewRootImpl . (ViewRootImpl.java:388)中添加的 . (WindowManagerImpl.java:69)在android.app.Dialog.show(Dialog.java:286)

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

1 回答

  • 3

    更换

    customDialog.hide();
    

    customDialog.dismiss();
    

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

相关问题