gpt4 book ai didi

android - Firebase 存储 java.util.concurrent.RejectedExecutionException

转载 作者:行者123 更新时间:2023-11-29 19:08:58 24 4
gpt4 key购买 nike

应用程序启动时,应下载 500 张图片。但是在大约 120 个请求 isLandRef.getFile(file); 之后,我遇到了这样的错误:java.util.concurrent.RejectedExecutionException: Task com.google.firebase.storage.StorageTask$8@ 800c85 被 java.util.concurrent.ThreadPoolExecutor@e340ada 拒绝[正在运行,池大小 = 3, Activity 线程 = 3,排队任务 = 128,完成任务 = 0]在此错误图像之后不再下载。我能够通过添加 Thread.sleep (100); 来解决此错误,但因此我的应用程序卡住了。不使用Thread.sleep(100);如何解决报错问题?

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();
}
}

最佳答案

看起来有一个最大队列大小。不要在一开始就对所有作业进行排队,您应该只获取您现在需要的,或者编写您自己的队列并在每个作业完成时继续为它们的队列提供数据。

关于android - Firebase 存储 java.util.concurrent.RejectedExecutionException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46082628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com