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