ActiveAndroid数据库位置动态变化

时间:2014-10-07 19:21:24

标签: android database orm activeandroid

我正在开发一个Android应用程序,并考虑使用ORM来利用一些数据库工作,我已经看到了一些,他们似乎都很适合这份工作,现在我只剩下一个主要问题,我没有'找到了一种在运行时设置数据库位置的方法。

例如,我要谈一个常见的(在这种情况下,非常真实的场景)让我们假设您的应用需要完全脱机工作,并且用户下载应用所需的数据库,一个共同的指导方针是提供一些排序文件浏览器,以便用户可以指定数据目录。

好吧,假设我使用ActiveAndroid ORM,我根据指南设置了一切,我在AndroidManifest中指定了数据库的名称,我甚至可以在那里设置一个静态路径,例如,“ /mnt/sdcard/data/data.db“并且它将使用现有数据库,我只是没有找到做某事的方式

ActiveAndroid.location = customLocation;

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

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:2)

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

而不是通过

初始化AndroidManifest中的ActiveAndroid连接
android:name

属性,不要在那里指定任何名称或元数据属性,现在,官方文档声明您可以通过

在运行时初始化ActiveAndroid
ActiveAndroid.initialize(this)

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

setDatabaseName(String name)

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

ActiveAndroid.initialize(builder.create())

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

就是这样!现在,无论用户决定放置ActiveAndroid,您都可以使用预先填充的数据库。