@Override protected Boolean doInBackground(List<AppInfo>... params) { List<AppInfo> appInfos = params[0]; Boolean success = false; for (AppInfo appInfo : appInfos) { String iconUrl = appInfo.getIconUrl(); if (iconUrl != null) { File iconFile = new File(getCacheDir() + "/" + appInfo.getIconName()); if (!iconFile.exists()) { try { iconFile.createNewFile(); URL url = new URL(iconUrl); HttpURLConnection c = (HttpURLConnection) url.openConnection(); c.setRequestMethod("GET"); // c.setDoOutput(true); c.connect(); FileOutputStream fos = new FileOutputStream(iconFile); InputStream is = c.getInputStream(); byte[] buffer = new byte[1024]; int len1 = 0; while ((len1 = is.read(buffer)) != -1) { fos.write(buffer, 0, len1); } fos.close(); is.close(); success = true; } catch (IOException e) { if (iconFile.exists()) { iconFile.delete(); } Log.d("log_tag", "Error: " + e); } } } } return success; }