Класс
Dialog используется для отображения диалогового окна. Использование класса
Dialog напрямую не рекомендуется, потому что управление состоянием диалога при
configuration changes сложно и
неочевидно (не делайте так, если вы не в 2009м). Диалоги были частой причиной крэшей на ранних этапах разработки под андроид. Метод активити
showDialog() deprecated начиная с
API level 15.
DialogFragment – фрагмент, который содержит внутри себя объект
Dialog и выступает как интерфейс для взаимодействия с диалогом. У
DialogFragment жизненный цикл фрагмента. Система сама заботится о пересоздании
DialogFragment при configuration changes.
Всегда используйте DialogFragment, а не
Dialog.