причина WindowManager$BadTokenException
в том, что вы продолжаете показывать dialog
или popupwindow
в окне, контекст которого сейчас не активен.
Поэтому всегда следует закрывать всплывающее окно или диалог всякий раз, когда вы переключаетесь между действиями или отклоняете любое действие.
Поэтому вам, вероятно, следует вызвать dilog.dismiss () в методе onPause.
onPause()
{
dilog.dismiss()
}