0

アプリで奇妙な動作が発生しています。

ListView を持つアクティビティがあります。ListView 内の項目をクリックすると、TimePickerDialog が表示されます。

ダイアログを閉じた後にホームボタンを押してからアプリをリロードすると、TimePickerDialog が再び自動的に表示されます。

さて、なぜこのような行動が起こるのかわかりません。アプリのさまざまな時点でメッセージを記録して、それがどのようにトリガーされるかを判断しようとしましたが、役に立ちませんでした。

私もこの行を追加しました:

Log.d("TEST", "TEST");

TimePickerFragment のコンストラクター内にあり、起動されていません! それでもダイアログが表示されます!

ここで何が起こっているのですか?

4

2 に答える 2

0

アクティビティは状態を保存します。そのため、マネージド ダイアログの状態も保存されます。戻ってくると復活します。すでに作成されているため、コンストラクターは呼び出されません。アクティビティにダイアログを管理させなければ、私の知る限り、この動作は発生しません

于 2012-08-06T06:08:32.590 に答える
0

nandeesh の回答のおかげで、その動作を修正する方法を見つけることができました。

私のダイアログは管理されていたので、ダイアログ インスタンスで DismissAllowingStateLoss() メソッドを呼び出す必要がありました。

今では魅力のように機能します。

于 2012-08-06T06:18:40.593 に答える