Jawaban:
Biasanya, dialog diberhentikan saat tugasnya selesai dan dihapus dari layar. Dialog dibatalkan ketika pengguna ingin keluar dari dialog dan menekan tombol Kembali.
Misalnya, Anda memiliki dialog Ya / Tidak standar di layar. Jika pengguna mengklik Tidak, maka dialog ditolak dan nilai untuk Tidak dikembalikan ke pemanggil. Jika alih-alih memilih Ya atau Tidak, pengguna mengklik Kembali untuk keluar dari dialog daripada membuat pilihan kemudian dialog dibatalkan dan tidak ada nilai yang dikembalikan ke pemanggil.
dismissadalah sesuatu yang harus Anda panggil secara eksplisit dalam kode Anda, biasanya untuk menanggapi acara klik pada tombol di Anda Dialog. Jika Anda suka, Anda dapat menghubungi dismissDialogdi Activity, yang pada akan mengubah panggilan dismisspada Dialog.
The cancelMetode hanya mengeksekusi ketika secara eksplisit disebut dalam kode Anda, atau ketika pengguna menekan tombol BACK ketika dibatalkan Anda Dialogterbuka (seperti @Lee dicatat).
Jika Anda menggunakan DatePicker, maka semua ini masih terjadi. Seperti @Lee katakan, DatePickerDialog.OnDateSetListenerhanya mendeteksi ketika pengguna telah memilih tanggal dari DatePicker.
Itu Android Developer Referensi menyediakan info lebih lanjut tentang Dialogs.
cancelmetode. Ada dua pendengar berbeda untuk dimissing dan canceling.
DismissMemanggil pemberhentian menghapus dialog dari layar. Metode ini dapat dipanggil dengan aman dari utas apa pun. Perhatikan bahwa Anda tidak harus mengesampingkan metode ini untuk melakukan pembersihan ketika dialog ditolak, melainkan menerapkannya di onStop .
CancelMemanggil pembatalan, membatalkan dialog. Ini pada dasarnya sama dengan memanggil dismiss () , tetapi juga akan memanggil DialogInterface.OnCancelListener Anda , jika terdaftar.
Hide Metode ini menyembunyikan dialog, tetapi jangan mengabaikannya.
Dan untuk lebih lanjut lihat di sini