I have read in the documentation and this is what i have learned
Dialog
Base class for Dialogs.
Note: Activities provide a facility to manage the creation, saving and restoring of dialogs. See onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), and dismissDialog(int). If these methods are used, getOwnerActivity() will return the Activity that managed this dialog.
Thus FragmentDialog is just a subclass of Dialog which is in a fragment and thus disconnected from the creating Activity life cycle
A fragment that displays a dialog window, floating on top of its activity's window. This fragment contains a Dialog object, which it displays as appropriate based on the fragment's state. Control of the dialog (deciding when to show, hide, dismiss it) should be done through the API here, not with direct calls on the dialog.
and WindowPopup is disconnected from creating Activity's life cycle (so what is it differ from FragmentDialog?)
*Is WindowPopup more like a toast message going on top of all activities even when app is invisible?
*when should i use each of them?
*other differences?