Câu trả lời:
Thông thường, một hộp thoại sẽ bị loại bỏ khi công việc của nó kết thúc và nó sẽ bị xóa khỏi màn hình. Một hộp thoại bị hủy khi người dùng muốn thoát khỏi hộp thoại và nhấn nút Quay lại.
Ví dụ: bạn có hộp thoại Có / Không chuẩn trên màn hình. Nếu người dùng nhấp vào Không, thì hộp thoại sẽ bị loại bỏ và giá trị cho Không được trả về cho người gọi. Nếu thay vì chọn Có hoặc Không, người dùng nhấp vào Quay lại để thoát hộp thoại thay vì chọn, thì hộp thoại sẽ bị hủy và không có giá trị nào được trả về cho người gọi.
dismisslà một cái gì đó bạn phải gọi một cách rõ ràng trong mã của bạn, thường là để đáp ứng với một sự kiện nhấp chuột vào một nút trong của bạn Dialog. Nếu bạn thích, bạn có thể gọi dismissDialogtrong Activity, sẽ lần lượt gọi dismisstrên Dialog.
Các cancelphương pháp duy nhất thực hiện khi nó rõ ràng được gọi là trong mã của bạn, hoặc khi người dùng nhấn nút BACK khi hủy ngang của bạn Dialoglà mở (như @Lee lưu ý).
Nếu bạn đang sử dụng a DatePicker, thì tất cả điều này vẫn là trường hợp. Như @Lee đã nói, DatePickerDialog.OnDateSetListenerchỉ phát hiện khi người dùng đã chọn một ngày từ DatePicker.
Các nhà phát triển Android Reference cung cấp thông tin thêm về Dialogs.
cancelphương thức. Có hai người nghe khác nhau để giảm bớt và hủy bỏ.
DismissGọi cách chức sẽ loại bỏ hộp thoại khỏi màn hình. Phương pháp này có thể được gọi một cách an toàn từ bất kỳ chủ đề. Lưu ý rằng bạn không nên ghi đè phương thức này để dọn dẹp khi hộp thoại bị loại bỏ, thay vào đó hãy thực hiện điều đó trong onStop .
CancelGọi hủy, hủy hộp thoại. Điều này về cơ bản giống như gọi hàm notify () , nhưng nó cũng sẽ gọi DialogInterface.On HủyListener của bạn , nếu đã đăng ký.
Hide Phương pháp này ẩn hộp thoại, nhưng không loại bỏ nó.
Và để biết thêm xem tại đây