回答:
通常、ダイアログは、そのジョブが完了して画面から削除されるときに閉じられます。ユーザーがダイアログをエスケープして[戻る]ボタンを押すと、ダイアログがキャンセルされます。
たとえば、画面に標準の[はい/いいえ]ダイアログがあります。ユーザーが[いいえ]をクリックすると、ダイアログが閉じて、[いいえ]の値が呼び出し元に返されます。[はい]または[いいえ]を選択する代わりに、ユーザーが[戻る]をクリックして選択を行うのではなくダイアログをエスケープすると、ダイアログはキャンセルされ、値は呼び出し元に返されません。
dismissコードで明示的に呼び出す必要があるもので、通常はのボタンのクリックイベントに応答しますDialog。必要に応じdismissDialogてActivity、を呼び出すと、が呼び出さdismissれますDialog。
このcancelメソッドは、コードで明示的に呼び出されたとき、またはキャンセル可能Dialogオブジェクトが開いているときにユーザーが[戻る]ボタンを押したときにのみ実行されます(@Leeが指摘したとおり)。
を使用しDatePickerている場合でも、これはすべて当てはまります。@Leeが言ったようDatePickerDialog.OnDateSetListenerに、ユーザーがから日付を選択したことを検出するだけDatePickerです。
Androidデベロッパーのリファレンスは、詳細を提供Dialog秒。
cancelメソッドを呼び出すこともできます。破棄とキャンセルには2つの異なるリスナーがあります。
Dismissdismissを呼び出すと、ダイアログが画面から削除されます。このメソッドは、任意のスレッドから安全に呼び出すことができます。ダイアログが閉じられたときにクリーンアップを行うためにこのメソッドをオーバーライドするのではなく、代わりにonStopに実装する必要があることに注意してください。
Cancelキャンセルを呼び出すと、ダイアログがキャンセルされます。これは基本的にdismiss()の呼び出しと同じですが、登録されている場合はDialogInterface.OnCancelListenerも呼び出します。
Hide このメソッドはダイアログを非表示にしますが、閉じないでください。
そして、詳細はこちらをご覧ください