Здравсвуйте! У меня есть activity, на которой расположена кнопка загрузки книги с сервера. При ее нажатии хочу вывести отображение progressbar на все время, пока фалы загружаются. Вобщем то, типовая задача. Но файлов загружается несколько, с помощью
библиотеки . И я не могу сообразить, как заблокировать дейстия в activity и вывести progressbar на время загрузки ВСЕХ файлов. Библиотека загружает файлы в отдельном потоке.
Может быть мне грузить файлы прямо в UI потоке, без библиотеки? Тогда уже точно пользователь ничего не сделает, пока файлы не загрузятся. Но это плохая идея, имхо, если соединение не очень - пойдут сбои.
Подскажите, в какую сторону "копать", может есть какие-то примеры?
Вот этот метод у меня грузит файлы и записывает в память:
private void downloadFilesBook(String[] urlsFiles) {
mFetch = Fetch.newInstance(this);
String folderB = "bookfiles_" + bookId;
String fileNameForWrite = "book_" + bookId + ".json";
File bookfolder = new File(String.valueOf(getExternalFilesDir(folderB)));
ArrayList<String> pagesFiles = new ArrayList<>();
for (int i = 0; i < urlsFiles.length; i++) {
String url = urlsFiles[i];
String path = String.valueOf(bookfolder);
String fileName = Uri.parse(url).getLastPathSegment();
Log.d("my2", fileName);
Request request = new Request(url, path, fileName);
String pageFilePath = path + "/" + fileName;
Log.d("my2", pageFilePath);
pagesFiles.add(pageFilePath);
downloadId = mFetch.enqueue(request);
}
BookFiles bookFiles = new BookFiles();
bookFiles.setBookID(bookId);
ArrayList<String> pagesPath = getPagesArray(pagesFiles);
ArrayList<String> soundsPath = getSoundsArray(pagesFiles);
bookFiles.setPagesPath(pagesPath);
bookFiles.setSoundsPath(soundsPath);
Gson gson11 = new Gson();
String filesJson = gson11.toJson(bookFiles);
MyJSON.saveData(getApplicationContext(), filesJson, fileNameForWrite);
}