Respostas:
Normalmente, uma caixa de diálogo é descartada quando seu trabalho é concluído e está sendo removido da tela. Uma caixa de diálogo é cancelada quando o usuário deseja sair da caixa de diálogo e pressiona o botão Voltar.
Por exemplo, você tem uma caixa de diálogo padrão Sim / Não na tela. Se o usuário clicar em Não, a caixa de diálogo será descartada e o valor de Não será retornado ao chamador. Se, em vez de escolher Sim ou Não, o usuário clicar em Voltar para sair da caixa de diálogo em vez de fazer uma escolha, a caixa de diálogo será cancelada e nenhum valor será retornado ao chamador.
dismissé algo que você precisa chamar explicitamente no seu código, geralmente para responder a um evento de clique em um botão no seu Dialog. Se preferir, você pode chamar dismissDialogo Activity, que por sua vez chamará dismisso Dialog.
O cancelmétodo só é executado quando é explicitamente chamado no seu código ou quando o usuário pressiona o botão VOLTAR quando o cancelável Dialogestá aberto (como @Lee observou).
Se você estiver usando a DatePicker, tudo isso ainda é o caso. Como o @Lee disse, DatePickerDialog.OnDateSetListenerapenas detecta quando o usuário escolhe uma data no DatePicker.
A Referência do desenvolvedor do Android fornece mais informações sobre Dialogs.
cancelmétodo Existem dois ouvintes diferentes para alterar e cancelar.
DismissChamar a dispensa remove a caixa de diálogo da tela. Este método pode ser chamado com segurança a partir de qualquer thread. Observe que você não deve substituir esse método para fazer a limpeza quando a caixa de diálogo for descartada; em vez disso, implemente-a no onStop .
CancelSe você cancelar, cancela a caixa de diálogo. Isso é basicamente o mesmo que ligar para dispensar () , mas também chamará seu DialogInterface.OnCancelListener , se registrado.
Hide Este método oculta a caixa de diálogo, mas não a descarta.
E para mais, veja aqui