提问
我的应用程序需要下载并保存大量图像和mp3.这些仅对应用程序有意义,只有我的应用程序才能以有意义的方式使用它们.用户或其他应用程序将不知道如何处理他们.
我应该将它们保存在外部或内部存储中的什么位置?
我想将它们保留在内部存储器中,因为它们仅对应用程序有意义,并且在删除应用程序时它们将被清除.
但是,对于旧设备,内部存储器非常有限,我认为用户将这些文件保存在这里会很麻烦.
因此,我当时在考虑外部存储器,但是我不喜欢在删除应用程序之后将那些文件保留在其中的想法.
最佳做法是什么?
谢谢.
最佳答案
使用“ getExternalFilesDir(String type)”返回的路径从文档中:
“将绝对路径返回到主外部文件系统(位于Environment.getExternalStorageDirectory()上的某个位置)上的目录的绝对路径,应用程序可以在该目录中放置其拥有的持久性文件.这些文件是应用程序的内部文件,通常对用户不可见媒体.
就像getFilesDir()一样,在卸载应用程序时,这些文件将被删除,但是有一些重要的区别:
外部文件并非始终可用:如果用户将外部存储设备安装在计算机上或将其删除,它们将消失.有关存储状态的信息,请参见环境上的API.这些文件没有强制实施安全性.例如,任何持有WRITE_EXTERNAL_STORAGE的应用程序都可以写入这些文件.”
因此,是的,您可以使用外部存储并在卸载应用程序时删除文件(只要您对缺乏安全性感到满意).