Android暂时保存图像并在不再保存时将其删除的最佳实践?
我目前正在开发一款android应用程序。在这个应用程序中,我从远程服务器下载图像,以便在其中显示它们。实际上,我将这些文件保存在sdcard/simulated/0/myapp中。我需要的是,当用户使用myapp时,如何使这些图像暂时可用,并且当用户按照本期中的最佳实践关闭应用程序时,应删除这些图像。我将图像保存到SD卡的代码是:Android暂时保存图像并在不再保存时将其删除的最佳实践?,android,android-sdcard,android-external-storage,Android,Android Sdcard,Android External Storage,我目前正在开发一款android应用程序。在这个应用程序中,我从远程服务器下载图像,以便在其中显示它们。实际上,我将这些文件保存在sdcard/simulated/0/myapp中。我需要的是,当用户使用myapp时,如何使这些图像暂时可用,并且当用户按照本期中的最佳实践关闭应用程序时,应删除这些图像。我将图像保存到SD卡的代码是: public static String saveToSdCard(Bitmap bitmap, String filename) { String st
public static String saveToSdCard(Bitmap bitmap, String filename) {
String stored = null;
File sdcard = Environment.getExternalStorageDirectory();
File folder = new File(sdcard.getAbsoluteFile(), "myapp");
if (!folder.exists()) {
folder.mkdirs();
}
File file = new File(folder.getAbsoluteFile(), filename + ".jpeg");
if(file.exists()){
file.delete();
}
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
/*if (file.exists())
return stored;
*/
try {
FileOutputStream out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
stored = "success";
} catch (Exception e) {
e.printStackTrace();
}
return stored;
}
提前谢谢 将它们存储在缓存目录中。通过getCacheDir()函数找到缓存目录。您可以使用毕加索缓存功能吗?尝试此链接->您可以使用毕加索缓存功能吗?我自己并没有广泛地使用它们,但从我所读到的来看,它们非常好。尝试此链接->毕加索是否具有将下载的图像保存在某处的功能,以便在以后浏览应用程序时访问这些图像。例如,在活动A中,我使用image A.png,然后我移动到其他活动并返回到活动A。毕加索是否再次下载或使用它。如果是这样的话,这个问题可能会占用我的带宽。@KrzysztofKubicki非常感谢您。这似乎是我寻找的解决办法。我将尝试使用并写回这里。@KrzysztofKubicki我使用了毕加索api,它满足了我的要求。再次感谢。你能把我的答案记为正确答案吗?我想在这件事上获得更多的分数。提前谢谢。这可能是一种方法,但您必须记住在退出时清除缓存以删除文件。Android只有在内存空间不足时才会删除缓存中的文件。文件在此: