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

我在Android中的缓存文件夹为空。我必须创建它吗?,android,caching,Android,Caching,我正在尝试缓存从网站获取的图像。但是,CacheManager.getCacheFileBaseDir()始终返回null 我需要在android emulator中创建缓存文件夹吗?如果是,我怎么做?应该在哪个目录中创建它 不要用那个。此答案存在文档问题:。用于特定于应用程序的缓存目录。您必须自己进行所有的缓存管理,但是,当卸载应用程序时,框架将管理低磁盘空间上的内容。如果要缓存大量数据,则应使用SD卡,而不是内部内存。所以你只需在SD卡上创建一个目录,并将缓存保存在其中 File cache

我正在尝试缓存从网站获取的图像。但是,
CacheManager.getCacheFileBaseDir()
始终返回
null


我需要在android emulator中创建缓存文件夹吗?如果是,我怎么做?应该在哪个目录中创建它

不要用那个。此答案存在文档问题:。用于特定于应用程序的缓存目录。您必须自己进行所有的缓存管理,但是,当卸载应用程序时,框架将管理低磁盘空间上的内容。

如果要缓存大量数据,则应使用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"/>


我尝试了“此答案”链接上的代码。但是,我得到了一个java.lang.nullPointerException这一行总是返回nullPointerException。除了INTERNET权限外,我是否需要添加任何权限才能使用缓存?CacheResult cache_result=CacheManager.getCacheFile(imageUrl,new HashMap());不,我所说的发布的意思是,您不应该使用CacheManager,它的文档是错误的。它不能在webkit之外使用。如果您想要一个简单快速的缓存目录,您需要使用
Context#getCacheDir
。好的。。知道了。谢谢。是否有任何地方可以获得有关如何进行快速缓存的示例?如果我想将缓存存储在SD卡中,如何进行?是否有任何示例可供我参考?因为我是android的新手。谢谢你的例子。我要试一试。