0

以下のコードを使用して開始しますactivity

Intent intent = new Intent(XXX.this, YYY.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(data);

どういうわけか、XXX のonResume()メソッドが呼び出されます。progressDialog内部をポップアップしようとしたため、onResume()以下のエラーが発生しました。

`android.view.WindowLeaked: Activity XXX has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@406ca468 that was originally added here.`

デバッグモードではbreakpoint、メソッドの最初の行にa を設定しましたonResume()が、そこで停止することはありませんが、それでも上記のエラーが発生します。

なぜこれが起こるのですか?

4

1 に答える 1

0

onResume はアクティビティ ライフサイクルの一部であるため、アクティビティが初めて作成されるかどうかに関係なく呼び出されます。ユーザーがダイアログに戻ったときにダイアログを開く場合は、その動作を onResume ではなく onRestart に配置する必要があります。

編集:ダイアログ作成コードを見ないと、エラーの原因を特定するのは困難です。ただし、onResume でダイアログ自体を作成するだけでなく、showDialog を呼び出して、作成したダイアログを onCreateDialog から返すようにしてください。

于 2012-06-15T17:07:59.097 に答える