アプリケーションが起動すると、500枚の写真をダウンロードする必要があります。 120件のリクエストの後にisLandRef.getFile(file);
私はこのようなエラーを受け取りました:java.util.concurrent.RejectedExecutionException: Task [email protected] rejected from [email protected][Running, pool size = 3, active threads = 3, queued tasks = 128, completed tasks = 0]
そしてこのエラーの後、イメージはダウンロードされません。 Thread.sleep (100);
を追加してこのエラーを解決できましたが、このために私のアプリケーションがフリーズします。 Thread.sleep (100);
を使用せずにエラーの問題を解決するにはどうすればよいですか?Firebaseストレージjava.util.concurrent.RejectedExecutionException
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
if (data.getCount() != 0) {
for (int i = 0; i < data.getCount(); i++) {
data.moveToPosition(i);
loadImage(data.getString(data.getColumnIndexOrThrow(ExamContract.QuestionEntry.COLUMN_IMAGE)));
}
finish();
}
}
private void loadImage(String image) {
StorageReference isLandRef = FirebaseStorage.getInstance().getReference().child("images/" + image + ".jpg");
try {
File path = getDir("images", Context.MODE_PRIVATE);
File file = new File(path, image + ".jpg");
try {
isLandRef.getFile(file);
} catch (RejectedExecutionException r) {
r.printStackTrace();
Thread.sleep(100);
try {
isLandRef.getFile(file);
} catch (RejectedExecutionException j) {
Thread.sleep(100);
isLandRef.getFile(file);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}