我对android中的预定义目录有疑问。
在我的苹果iOS应用程序中,我使用以下两个目录:
//document dir for user files that need backup
NSString *d = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex: 0];
//cache dir for re-downloadable data
NSString *c = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
现在我想在android中做同样的事情,但我不确定,它是如何在那里使用的。我的猜测是这两个函数,但如果错误则会有一些确认或重定向。
String d = Environment.getExternalStorageDirectory().getAbsolutePath();
String c = Environment.getDownloadCacheDirectory().getAbsolutePath();
另一点是,两个目录都包含几百兆字节,所以也许我需要为两者使用外部存储?当设备需要更多空间时,缓存目录在iOS上被清除。 android中是否有类似的机制?
答案 0 :(得分:2)
根据您支持的最低Android版本,您应该看一下:
Context#getExternalCacheDir()
http://developer.android.com/reference/android/content/Context.html#getExternalCacheDir()
和
Context#getExternalFilesDir(String)
因此,要在活动中使用这些,您只需调用:
File cacheDir = getExternalCacheDir();
或来自片段:
File cacheDir = getActivity().getExternalCacheDir();
Android不保证在任何给定时间都会清除缓存目录。你有责任这样做。
有关在android上使用缓存目录应该做些什么的快速参考,请参阅:http://developer.android.com/reference/android/content/Context.html#getCacheDir()