Android暂时保存图像并在不再保存时将其删除的最佳实践?

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

我目前正在开发一款android应用程序。在这个应用程序中,我从远程服务器下载图像,以便在其中显示它们。实际上,我将这些文件保存在sdcard/simulated/0/myapp中。我需要的是,当用户使用myapp时,如何使这些图像暂时可用,并且当用户按照本期中的最佳实践关闭应用程序时,应删除这些图像。我将图像保存到SD卡的代码是:

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只有在内存空间不足时才会删除缓存中的文件。文件在此: