我正在创建一个应用程序,该应用程序可能会在多个教育机构中用于各种类(class),导师们希望能够临时更新应用程序中的某些信息。我最初认为执行此操作的最佳方法是让应用程序将新的 strings.xml 文件下载到 res/values 文件夹,尽管我已经读到您无法在应用程序打包和运行时更新此文件夹/文件。我认为一个很好的解决方法是能够在别处保存另一个 strings.xml 文件
我的问题是:
- 这有可能吗?
- 我应该去哪里保存 strings.xml 以便它不 导出应用程序时打包?
注意:该文件不会被称为 string.xml,因此不会与实际的 strings.xml 混淆等。
最佳答案
对于应该将文件放在哪里没有“规则”(减去系统和其他您无法访问的私有(private)文件夹)。但是,将您的应用程序下载的非打包资源放置在您自己的应用程序数据文件夹(位于设备的内部存储)或设备的外部存储(SD 卡)中的合乎逻辑且最常见的位置.
要将文件写入内部存储,您需要使用上下文的 openFileOutput(..)方法。这会将文件存储在您的应用程序私有(private)数据目录中。使用 openFileInput(..)读取您存储的文件
要写入外部存储,您需要将 WRITE_EXTERNAL_STORAGE 权限添加到您的 list 中。完成后,您可以在下载时使用 FileOutputStream 写入文件数据。用于读取的 InputStream(查找最适合的输入流类型)
显然,我给出的示例并不十分详细或没有代码,但它们会指导您在设备上存储文件的正确方向。
关于android - 是否可以引用未保存在 res 文件夹中的 strings.xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8157152/