/** * @param url * @param cacheToMemory is cache to memory * @param callback */ public void downloadImage( final String url, final boolean cacheToMemory, final ImageCallback callback) { if (mDownloadingSet.contains(url)) { CommonLog.i(CLASSTAG, "image is downloading!"); return; } // if image could be gotten Bitmap bitmap = impl.getBitmapFromMemory(url); CommonLog.i(CLASSTAG, "getBitmapFromMemory = " + bitmap); // if not, download from internet if (bitmap != null) { if (callback != null) { callback.onImageLoaded(bitmap, url); } } else { // download from internet mDownloadingSet.add(url); mExecutorService.submit( new Runnable() { @Override public void run() { final Bitmap bitmap = impl.getBitmapFromUrl(url, cacheToMemory); handler.post( new Runnable() { @Override public void run() { if (callback != null) { callback.onImageLoaded(bitmap, url); } mDownloadingSet.remove(url); } }); } }); } }