2

我正在开发一个 Android 应用程序并考虑使用 ORM 来利用一些数据库工作,我见过一些,它们似乎都适合这项工作,现在我只剩下一个主要问题,我还没有找到在运行时设置数据库位置的方法。

例如,我将讨论一个常见(在这种情况下,非常真实)的场景,假设您的应用程序需要完全离线工作,并且用户下载应用程序所需的数据库,一个常见的指导方针是提供某种文件资源管理器所以用户可以指定数据目录。

好吧,假设我使用 ActiveAndroid ORM,我已经按照指南设置了所有内容,并且我在 AndroidManifest 中指定了数据库的名称,我什至可以在其中设置静态路径,例如“/mnt/ sdcard/data/data.db”,它可以使用现有的数据库,我只是还没有找到类似的方法

ActiveAndroid.location = customLocation;

其中customLocation是用户在Preferences上选择的路径,即数据库的自定义位置。

任何帮助表示赞赏。

4

1 回答 1

3

我找到了一个对我有用的解决方法,它并没有太复杂,但我还没有看到这个特殊问题无处得到解决。

而不是通过在 AndroidManifest 中初始化 ActiveAndroid 连接

android:name

属性,不要在那里指定任何名称或元数据属性,现在,官方文档声明您可以在运行时通过以下方式初始化 ActiveAndroid

ActiveAndroid.initialize(this)

好吧,有一个非常方便的类叫做 Builder 可以通过 Configuration 类访问,ActiveAndroid 中的那个,而不是 android.content.res 中的那个,并且使用 Builder 对象你可以指定一些东西,即

setDatabaseName(String name)

属性,然后您可以在其中使用数据库的自定义路径,然后像这样初始化 ActiveAndroid

ActiveAndroid.initialize(builder.create())

其中 create() 方法返回一个配置对象

就这样!现在,您可以在用户决定放置它的任何地方使用带有 ActiveAndroid 的预填充数据库。

于 2014-10-13T20:01:13.453 回答