Я использую этот метод:
protected void showDialogSafe(int id) {
if (!isFinishing()) {
showDialog(id);
}
}
Который я взял отсюда: http://daniel -codes.blogspot.com / 2009/12 / actions-and-dialogs.html
При отклонении их я просто ловлю исключение IllegalArgumentException.
Falmarri, отслеживать диалоги, кажется, легче, чем сделать, когда у вас запущено несколько потоков. Я думал, что мой код был идеальным, но я получаю кучу отчетов о сбоях, когда мое приложение пытается закрыть диалоговые окна, которые не отображаются, или пытается отобразить диалог, когда действие завершено.