【发布时间】:2011-03-06 04:04:25
【问题描述】:
我正在尝试缓存从网站获取的图像。但是,CacheManager.getCacheFileBaseDir() 始终返回 null。
我需要在安卓模拟器中创建缓存文件夹吗?如果是,我该怎么做?它应该在哪个目录中创建?
【问题讨论】:
我正在尝试缓存从网站获取的图像。但是,CacheManager.getCacheFileBaseDir() 始终返回 null。
我需要在安卓模拟器中创建缓存文件夹吗?如果是,我该怎么做?它应该在哪个目录中创建?
【问题讨论】:
不要使用它。这个答案有一个文档问题:How to use Android's CacheManager?。将Context#getCacheDir 用于特定于您的应用程序的缓存目录。您必须自己进行所有缓存管理,但是,该框架将在磁盘空间不足以及您的应用程序被卸载时管理内容。
【讨论】:
Context#getCacheDir。
如果您要缓存大量数据,您应该使用 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");
【讨论】:
建议使用 Context.getExternalCacheDir()。
此位置仅供您的应用使用,当您从 Android 设备卸载应用时,此 API 将删除此位置。为了使用它,您必须在 AndroidManifest.xml 中将以下语句作为条目
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
【讨论】: