【问题标题】:window is leaked while hiding a custom dialog隐藏自定义对话框时窗口泄漏
【发布时间】:2017-01-02 16:43:35
【问题描述】:

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

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....I. 0,0-169,59} 最初添加在这里 在 android.view.ViewRootImpl.(ViewRootImpl.java:388) 在 android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248) 在 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 在 android.app.Dialog.show(Dialog.java:286)

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

【问题讨论】:

  • customDialog.dismiss()??

标签: android


【解决方案1】:

替换

customDialog.hide();

customDialog.dismiss();

因为 hide() 在您移动到其他屏幕时会导致泄漏窗口错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    相关资源
    最近更新 更多