我应该使用外部存储空间来存储我的应用独有的数据吗

时间:2014-01-24 15:49:04

标签: android storage android-sdcard internal-storage

我的应用需要下载并保存大量图片和mp3。 这些只对应用程序有意义,只有我的应用程序才能以有意义的方式使用它们。用户或其他应用程序将不知道如何处理它们。

我应该将它们保存在外部或内部存储器中?

我想将它们保存在内部存储器中,因为它们只对应用程序有意义,并且在删除应用程序时它们将被清除。

但是,对于旧设备,内部存储器非常有限,我认为用户将这些文件保存在这里会很麻烦。 所以,我在考虑外部内存,但我不喜欢在应用程序被删除后保留这些文件的想法。

最佳做法是什么?

谢谢。

2 个答案:

答案 0 :(得分:4)

使用'getExternalFilesDir(String type)'

返回的路径

来自文档:

“返回主外部文件系统上的目录的绝对路径(在Environment.getExternalStorageDirectory()上的某个位置),其中应用程序可以放置它拥有的持久文件。这些文件是应用程序的内部文件,而不是通常作为媒体对用户可见。

这就像getFilesDir()一样,这些文件将在卸载应用程序时被删除,但是存在一些重要的区别:

外部文件并非始终可用:如果用户将外部存储装入计算机或将其删除,它们将消失。有关存储状态的信息,请参阅环境中的API。这些文件没有强制实施安全性。例如,任何持有 WRITE_EXTERNAL_STORAGE 的应用程序都可以写入这些文件。“

有关详细信息:http://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)

所以,是的,您可以使用外部存储并在卸载应用程序时删除文件(只要您对缺乏安全性感到满意)。

答案 1 :(得分:0)

这非常接近意见问题,很可能会被关闭。

简答:使用外部存储空间。如果你用大量文件填充内部存储空间,用户会生气。

建议:为用户提供切换选项,以便将其存储在任何他们想要的位置!