Android で android.view.WindowLeaked エラー

Androidで ログイン画面 -> TOP画面 のような遷移をするときに、ログイン画面で認証処理の間に ProgressDialog を表示し認証後にTOP画面を表示したら、
android.view.WindowLeaked: Activity xx.TopActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView
というエラーが発生した。

原因は、画面遷移時にログイン画面を finish() で終わらせていたが、ProgressDialog を消していないために発生していた。

エラー発生バージョン

Intent intent = new Intent(this, TopActivity.class);
startActivity(intent);
finish();

修正版

if (progressDialog != null && progressDialog.isShowing()) {
    progressDialog.dismiss();
    progressDialog = null;
}
Intent intent = new Intent(this, TopActivity.class);
startActivity(intent);
finish();

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA