1

見知らぬ質問に出くわしました。AndroidのGlobalActionソースコードを読むと、ダイアログが開始されますが、このダイアログが表示されたかどうかを判断する判断が追加されます。以前に表示されていた場合は、却下されます。奇妙なことに、ハンドラーを使用してメッセージを送信し、ダイアログを再度作成して表示するよりも、ダイアログを閉じる必要があります。ハンドラーメッセージを送信する必要がある理由がわかりません。ダイアログを閉じる関数を呼び出すだけだと思います。 。その後、show functionを呼び出しますが、問題ありません。コメントには、「表示が遅れたため、前のダイアログの却下が完了しました」と書かれていましたが、意味もわかりません。誰かに説明してもらってください。ありがとうございます。

if (mDialog != null) {
            mDialog.dismiss();
            mDialog = null;
            // Show delayed, so that the dismiss of the previous dialog completes
            mHandler.sendEmptyMessage(MESSAGE_SHOW);
} 
4

1 に答える 1

2

多くのAndroidUI機能は、それ自体がメッセージを使用して実装されているため、すぐには完了しません。を呼び出すとDialog.dismiss()、Androidは実際の却下を行うメッセージをキューに入れます。このコードの作成者は、ダイアログを再度表示する前にダイアログが実際に閉じられていることを確認したいので、自分のメッセージを投稿します。このメッセージは、Androidによって投稿されたメッセージが完了するまで実行されません。

于 2013-03-27T06:27:02.063 に答える