我知道onDataChange下载是异步的,但是body有UI Thread。并且使用 Glide 加载图片也是异步的。 onDataChange 正在执行,它到达了 UI 线程的主体,但是图像在新线程中加载,因此,图像没有时间加载,如何进一步执行代码。
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
...
if(word.contains("https")){
Glide.with(Activity.this)
.load(url)
.into(imageView);
}else{
Log.d(TAG, "Another");
}
}
}
}
这是 Firebase 数据库。
如何在“for”循环继续之前等待图像加载?
最佳答案
如果您使用的是 Glide-v4
,您可以像这样设置一个用于加载图像的监听器:
Glide.with(Activity.this)
.load(url)
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
imageSend(imageView);
return false;
}
})
.into(imageView);
关于java - 如何在 onDataChange + Glide 循环 "for"继续之前等待图像加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53314573/