我的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/

10-10 06:14