Ответы:
Как правило, диалоговое окно закрывается, когда его работа завершена и он удаляется с экрана. Диалог отменяется, когда пользователь хочет выйти из диалога и нажимает кнопку «Назад».
Например, у вас есть стандартный диалог Да / Нет на экране. Если пользователь нажимает «Нет», то диалоговое окно закрывается, и значение «Нет» возвращается вызывающей стороне. Если вместо выбора «Да» или «Нет» пользователь нажимает кнопку «Назад», чтобы выйти из диалогового окна, а не сделать выбор, тогда диалоговое окно отменяется и никакое значение не возвращается вызывающей стороне.
dismiss
это то, что вы должны явно вызывать в своем коде, обычно для ответа на событие нажатия на кнопку в вашем коде Dialog
. Если вы предпочитаете, вы можете позвонить dismissDialog
в Activity
, который, в свою очередь, позвонит dismiss
на Dialog
.
cancel
Метод выполняется только когда он явно вызывается в коде, или когда пользователь нажимает кнопку НАЗАД , когда ваш отменяемый Dialog
открыт (как отмечено @Lee).
Если вы используете DatePicker
, то все это еще так. Как сказал @Lee, DatePickerDialog.OnDateSetListener
просто определяет, когда пользователь выбрал дату из DatePicker
.
Android Developer Reference предоставляет больше информации о Dialog
с.
cancel
метод. Есть два разных слушателя для диммирования и отмены.
Dismiss
Вызов dismiss удаляет диалог с экрана. Этот метод может быть безопасно вызван из любого потока. Обратите внимание, что вы не должны переопределять этот метод для очистки после закрытия диалогового окна, вместо этого реализуйте это в onStop .
Cancel
Вызов отмены, отменяет диалог. По сути, это то же самое, что вызов dismiss () , но также вызовет ваш DialogInterface.OnCancelListener , если он зарегистрирован.
Hide
Этот метод скрывает диалог, но не закрывает его.
А подробнее смотрите здесь