Ответ 1
Edit: С Android O, ProgressDialog теперь официально устарел. Предлагается альтернативный подход
Этот класс устарел на уровне API O. Используйте индикатор прогресса, такой как ProgressBar, встроенный внутри действия, а не используя этот модальный диалог.
Оригинальный ответ:
Это все из перспективы проектирования и взаимодействия с пользователем, а не с точки зрения кода.
В рекомендациях пользовательского интерфейса вам следует избегать использования ProgressDialog
не потому, что класс устарел (это не во время написания ответа), а потому, что он заставляет пользователя избегать взаимодействия с приложением и просто взгляните на экран.
В качестве примера возьмите приложение Google Play. В то время как он загружает приложение/обновление, вы все равно можете прокручивать, перемещаться и т.д. Вы все еще можете участвовать в приложении, когда оно что-то делает.
Если вам абсолютно необходимо, чтобы пользователь прекратил взаимодействие до тех пор, пока индикатор выполнения не закончится, обязательно сделайте это. Документы просто говорят, что вы сможете найти лучшие способы сделать это (отсюда ссылка на Прогресс и активность).