Android相当于文档和缓存目录

时间:2013-08-01 18:37:05

标签: android ios porting

我对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中是否有类似的机制?

1 个答案:

答案 0 :(得分:2)

根据您支持的最低Android版本,您应该看一下:

Context#getExternalCacheDir()

http://developer.android.com/reference/android/content/Context.html#getExternalCacheDir()

Context#getExternalFilesDir(String) 

http://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)

因此,要在活动中使用这些,您只需调用:

File cacheDir = getExternalCacheDir();

或来自片段:

File cacheDir = getActivity().getExternalCacheDir();

Android不保证在任何给定时间都会清除缓存目录。你有责任这样做。

有关在android上使用缓存目录应该做些什么的快速参考,请参阅:http://developer.android.com/reference/android/content/Context.html#getCacheDir()