Если вам не нужно диалоговое окно, просто поместите progressBar в свой макет, как и любой другой элемент представления, и установите видимость «INVISIBLE» или даже «GONE» по умолчанию.
Затем просто покажите его, когда вам нужно, изменив его на «VISIBLE», используя setVisibility в вашем коде, и снова скройте его, когда задача будет выполнена, снова сделав «INVISIBLE» или «GONE».
, например
MyTask {
// get handle on ProgressBar ViewItem defined in XML (id:progressBar)
ProgressBar progressBar = findViewById(R.id.progressBar);
//starting task, show progress bar
progressBar.setVisibility(View.VISIBLE);
// Do some stuff...
//task done, hide it again
progressBar.setVisibility(View.GONE);
}
Это простая версия, все сделано в потоке пользовательского интерфейса, но ее легко адаптировать, если вы используете асинхронные задачи или обработчики потоков. Просто покажите, спрячьте и опубликуйте все обновления в диалоговом окне, пока вы находитесь в потоке пользовательского интерфейса, и выполняйте свою долгосрочную задачу в фоновом режиме.