Dialog: A dialog is a small window that prompts the user to
make a decision or enter additional information.
DialogFragment: A DialogFragment is a special fragment
subclass that is designed for creating and hosting dialogs.
It allows the FragmentManager to manage the state of the
dialog and automatically restore the dialog when a
configuration change occurs.