Спасибо за быстрые ответы... но я думаю, что нашел ответ. Я попытался поймать ту часть, где я запускаю диалог прогресса.
Пример кода --
try {
pd2.show();
} catch (WindowManager.BadTokenException e) {
// TODO: handle exception
} catch (Exception e) {
// TODO: handle exception
}
Итак, если моя активность находится на вершине, она покажет диалог прогресса, иначе она выбросит BadTokenException, который обрабатывается с помощью блока try catch.
Почитайте о жизненном цикле активности. Определенные методы вызываются в зависимости от текущего состояния вашей активности: запущена ли она, приостановлена ли, убита и т.д.