使用getCacheDir()缓存文件

时间:2014-05-08 09:40:20

标签: android caching dropbox

我想下载从Dropbox下载的图片并将其缓存以供进一步使用:

String cachePath = mContext.getCacheDir().getAbsolutePath() + entry.fileName();
File cacheFile = new File(cachePath);
//cacheFile.exists() returns true after 1st call
if(!cacheFile.exists()){
  //If cache doesn't exist, download the file
  mFos = new FileOutputStream(cachePath);
  mApi.getThumbnail(path, mFos, ThumbSize.BESTFIT_320x240,
                              ThumbFormat.JPEG, null);
}
mDrawable = Drawable.createFromPath(cachePath);
mImageView.setImageDrawable(mDrawable);

如果代码未输入if块,则mDrawablenull

如果我评论if条件,它可以正常工作。但每次都下载图像。

修改

以上代码来自how to test for a file in cache

1 个答案:

答案 0 :(得分:6)

试试这个希望帮助你

String path = context.getFilesDir().getAbsolutePath() + File.separator + entry.fileName();
        File file = new File(path);

        if (file.exists()) {
            // File exists
        } else {
            // File does not exist
        }