隐藏自定义对话框时窗口被泄漏
我使用下面的代码来创建一个自定义对话框。
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