2

我想知道我在 android 中的应用程序有多少数据存储可用?

我需要缓存很多文件,我正在考虑将它存储在 sharedpreferences 中,这样如果应用程序被卸载,它就会被删除。毕竟它只是很多缓存文件。我想我也可以使用 SDCard,但我无法控制用户在应用程序之外所做的事情......

那么,在存储文件时,我的应用程序可以从 SharedPreferences 中获得多少 MB?

4

2 回答 2

4

如果您打算存储 MB 的数据,请尝试使用 sdcard 以避免填充手机内置的通常有限的存储空间,尤其是在 G1 上。

如果您确实在手机上存储数据,则每个应用程序都有自己的存储区域,卸载应用程序时也会将其删除。

http://d.android.com/reference/android/content/Context.html#getDir(java.lang.String, int)

对于缓存文件,您可以使用 File cacheDir = getCacheDir(); 它返回文件系统上应用程序特定缓存目录的路径。当设备存储空间不足时,这些文件将首先被删除。

有关详细信息,请参阅http://d.android.com/reference/android/content/Context.html#getCacheDir()

于 2009-10-10T10:11:50.453 回答
2

您要实现的缓存的目的是什么?

如果您想避免多次从 Internet 下载文件,SDCard 或SQLiteDatabase应该是不错的选择,具体取决于您正在使用的文件类型。如果您想将文件保留在内存中(例如,您想在堆中保留一些解码的位图),最好实现自己的 Cache 类。

SharedPreferences只能与一些基本类型 ( boolean, int, String, long, float) 一起使用 - 因此Parcelable不能放在您的应用程序的首选项中。

这会给在那里保存文件带来问题。

于 2009-10-10T06:44:58.720 回答