【发布时间】:2014-12-08 23:02:55
【问题描述】:
我有一个应用程序需要大量文件来维护用户偏好和系统配置(这是现有项目的一个端口)。我想知道将此配置目录存储在 android 设备上的首选位置。
getExternalFilesDir() 似乎是一个不错的选择,但如果卸载或重新安装应用程序会删除此目录。这对于最终卸载来说很好,但如果我向客户提供应用程序的更新,我需要保留他们的偏好。
所以 getFilesDir() 中的某个地方是我的下一个候选者,但我应该将我的配置目录保存在哪里?只是在 /Android 的 getFilesDir() 的根目录中?或其他“顶级”目录。此位置的优点是文件将在重新安装时保留,但我需要提供一种方法来删除卸载时的配置,但这似乎不可能,因为似乎没有“ onUninstall()" 方法。
(想象一个 RAW 照片应用程序,它存储了每张照片的用户设置;这些设置将存储在哪里,以便应用程序的更新不会删除所有设置,但它们会在卸载时被删除?)
为了稍微改变一下,我需要能够提供额外的“包”应用程序来将文件添加到这个配置目录中——所以这些必须能够找到主应用程序的配置目录并且可以读写那里的文件。 (即它不能是私有的)
对于开发,我只是使用 getFilesDir() + "/MyApp",它现在可以工作,但似乎不对!
谢谢
【问题讨论】:
标签: android configuration