我的onBitmapLoaded
问题。该方法不应该在适当的时候被调用(第二次进入视图时被调用)。不过,由于我将其添加到arraylist
中,因此我始终引用我的目标。
我不明白为什么它不起作用。
有人有主意吗?
public void loadBitmap() {
if(loadtarget == null) {
loadtarget = new Target(){
@Override
public void onPrepareLoad(Drawable arg0) {
Log.d("Bitmap","On prepare load");
targetList.remove(this);
return;
}
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
Log.d("Bitmap","OKAY for :" + filename);
targetList.remove(this);
handleLoadedBitmap(bitmap);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
Log.d("Bitmap","Error for :" + filename);
}
};
}
targetList.add(loadtarget);
Picasso.with(context).load(imageUrl).into(loadtarget);
}
最佳答案
如果targetList和loadtarget都是局部变量,则方法完成后将立即将它们标记为GC收集。
确保targetList是一个类变量,以便其寿命超过方法。
关于android - onBitmapLoaded从未调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33607200/