public static Drawable loadDrawable( final String imageUrl, final ImageCallback imageCallback, final Context activity) { try { // System.out.println(imageUrl); Drawable drawable = loadImageFromCache(imageUrl); if (drawable != null) { Log.d(TAG, "Cache Hit:" + imageUrl); imageCallback.imageLoaded(drawable, imageUrl); return drawable; } Log.d(TAG, "Cache Miss:" + imageUrl); final Handler handler = new Handler() { @Override public void handleMessage(Message message) { if (imageCallback != null) imageCallback.imageLoaded((Drawable) message.obj, imageUrl); } }; queue.put( new Runnable() { public void run() { Log.d(TAG, "URL loading:" + imageUrl); Drawable drawable = loadImageFromUrl(imageUrl, activity); Log.d(TAG, "URL Hit:" + imageUrl + ", drawable=" + drawable); Message message = handler.obtainMessage(0, drawable); handler.sendMessage(message); } }); beep(); } catch (Exception e) { e.printStackTrace(); } return null; }