Picasso Bild in Ziel laden

Ich verwende Picasso, um verschiedene Bilder herunterzuladen. Normalerweise zeige ich diese nur in einem @ aImageView aber in dieser Situation möchte ich einen starken Verweis auf sie haben, damit ich sie an verschiedenen Stellen verwenden kann, ohne auf den Cache zurückgreifen oder sie erneut herunterladen zu müssen. Das versuche ich folgendermaßen: (Beachten Sie, dass diese Klasse mehr enthält - ich habe sie nur auf die für diese Frage relevanten Teile eingegrenzt.)

public class MapLayer {

    private Context mContext;
    private String mType;
    private Drawable mIcon = null;

    public MapLayer (Context context, String type) {
        mContext = context;
        mType = type;
        downloadIcon();
    }

    public Drawable getIcon() {return mIcon;}

    private void downloadIcon() {

        String url = mContext.getString(R.string.maps_icon_url).replace("${type}", mType));

        Target target = new Target() {
            @Override
            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                Log.d(TAG, "on bitmap loaded");
                mIcon = new BitmapDrawable(mContext.getResources(), bitmap);
            }

            @Override
            public void onBitmapFailed(Drawable errorDrawable) {
                Log.d(TAG, "on bitmap failed");
            }

            @Override
            public void onPrepareLoad(Drawable placeHolderDrawable) {
                Log.d(TAG, "on prepare load");
                mIcon = placeHolderDrawable;
            }
        };

        ImageDownloader.getSharedInstance().load(url).into(target);
    }
}

n jedem Fall erhalte ich die Ausgabe:

on prepare load

aber nichts anderes. Mein Icon ist immer null. Ich kenne das aus anderen Klassen, in denen ich @ anrufgetIcon().

Was fehle ich hier? Vielen Dank für jede Hilfe.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage