Проверяю кучу файлов (>1000) на наличие их на FireBase Storage. Для проверки регистрирую Listener:
StorageReference riversRef = storageRef.child("Путь к файлу");
riversRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
uriItems.add(new UriItems(uri, di.getName()));
}
)}
И тут сталкиваюсь с проблемой, т.к. файлов много, вылетает Exeption:
java.util.concurrent.RejectedExecutionException: Task com.google.firebase.storage.zzb@63b9dea rejected from java.util.concurrent.ThreadPoolExecutor@1629f78[Running, pool size = 5, active threads = 5, queued tasks = 128, completed tasks = 0]
То есть, на каждый файл регистрируется отдельный поток и когда количество потоков достигает 128 шт. приложение крашится.
Вопрос в следующем, есть ли возможность приостановить работу метода, не тормозя при этом работу основного потока, для того что бы вызванные Listener'ы могли завершить свою работу.
Или может подскажете какой нибудь другой способ решения данной проблемы.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости