Я предполагаю, что вы используете AsyncTask для потоков, в данном случае для потоковой передачи или загрузки. Затем вы реализовали
onProgressUpdate
функция. В этой функции вы обновляете диалог прогресса, чтобы показать текущее состояние потоковой передачи. Чтобы закрыть диалоговое окно прогресса, вы должны установить его видимость на false или полностью удалить его из макета. В onProgressUpdate вам нужен оператор if или что-то подобное, чтобы перехватить ошибку и закрыть диалоговое окно.
EDIT:
Код показывает, что вы используете работающий интерфейс для реализации потоков, это хорошо для базовой разработки Java. Но у Android SDK есть решение, специально разработанное для Android, которое называется async task . Рекомендуется использовать его.
например. Вы можете добавить приватный класс в свой основной Java-файл, где находится метод oncreate.
private class MediaPlayer extends AsyncTask<Params, Progress, Result> {
}
а. Params: тип параметров, отправляемых заданию при выполнении.
б. Прогресс: тип единиц прогресса, опубликованных во время фонового вычисления.
с. Результат: тип результата вычисления фона.
Каждая асинхронная задача реализует следующие методы. 4 шага, через которые пройдет AsyncTask:
а. onPreExecute () - немедленно вызывается в потоке пользовательского интерфейса
-> Вызывается до начала фонового вычисления
-> Выполнить некоторые настройки (например, отобразить диалоговое окно хода выполнения)
б. doInBackground (Params ...) - вызывается в фоновом потоке
-> Вызывается сразу после onPreExecute ()
-> Выполнять вычисления в фоновом потоке, которые могут занять много времени.
-> Использовать publishProgress (Progress ...) для запуска процесса обновления пользовательского интерфейса
-> Ход выполнения будет передан в onProgressUpdate (Progress ...)
с. onProgressUpdate (Progress ...) - вызывается в потоке пользовательского интерфейса
-> Процесс обновления
д. onPostExecute (Результат) - вызывается в потоке пользовательского интерфейса
-> Вызывается после завершения вычисления фона
-> Результат будет передан из doInBackground (Params ...)
Как запустить AsyncTask?
new MyTask().execute(param1, param2, param3);
Это небольшой обзор. Я настоятельно рекомендую вам прочитать документ.