我在Android中的缓存文件夹为空。我必须创建它吗?

时间:2010-06-21 05:33:50

标签: android caching

我正在尝试缓存从网站获取的图片。但是,CacheManager.getCacheFileBaseDir()始终返回null。我是否需要在android模拟器中创建缓存文件夹?如果是的话,我该怎么办?应该在哪个目录中创建?

3 个答案:

答案 0 :(得分:3)

不要使用它。每个答案都有一个文档问题:How to use Android's CacheManager?。使用Context#getCacheDir作为特定于您的应用程序的缓存目录。您必须自己进行所有缓存管理,但是,框架将在低磁盘空间和卸载应用程序时管理内容。

答案 1 :(得分:2)

如果你要缓存大量数据,你应该使用SD卡而不是内部存储器。因此,您只需在SD卡上创建一个目录并将缓存保存在其中。

File cacheDir;
//Choose chache directory
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
  cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"MyCache");
else
  cacheDir=context.getCacheDir();
//File in cache directory
File f=new File(cacheDir, "file.txt");

答案 2 :(得分:1)

建议使用Context.getExternalCacheDir()。

此位置仅适用于您的应用程序,当您从Android设备卸载应用程序时,此API将删除此位置。为了使用它,您必须将以下语句作为AndroidManifest.xml中的条目

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>