我正在开发一个Android应用程序,并考虑使用ORM来利用一些数据库工作,我已经看到了一些,他们似乎都很适合这份工作,现在我只剩下一个主要问题,我没有'找到了一种在运行时设置数据库位置的方法。
例如,我要谈一个常见的(在这种情况下,非常真实的场景)让我们假设您的应用需要完全脱机工作,并且用户下载应用所需的数据库,一个共同的指导方针是提供一些排序文件浏览器,以便用户可以指定数据目录。
好吧,假设我使用ActiveAndroid ORM,我根据指南设置了一切,我在AndroidManifest中指定了数据库的名称,我甚至可以在那里设置一个静态路径,例如,“ /mnt/sdcard/data/data.db“并且它将使用现有数据库,我只是没有找到做某事的方式
ActiveAndroid.location = customLocation;
其中customLocation是用户在首选项上选择的路径,即数据库的自定义位置。
任何帮助表示感谢。
答案 0 :(得分:2)
我发现了一个对我有用的解决方法,它没有太复杂,但我还没有看到这个特殊问题无处可寻。
而不是通过
初始化AndroidManifest中的ActiveAndroid连接android:name
属性,不要在那里指定任何名称或元数据属性,现在,官方文档声明您可以通过
在运行时初始化ActiveAndroidActiveAndroid.initialize(this)
嗯,有一个非常方便的类叫做Builder,可以使用Configuration类访问,ActiveAndroid中的那个,而不是android.content.res中的那个,并且使用Builder对象可以指定一些东西,即,
setDatabaseName(String name)
属性,然后您可以使用数据库的自定义路径,然后像这样初始化ActiveAndroid
ActiveAndroid.initialize(builder.create())
其中create()方法返回一个Configuration对象
就是这样!现在,无论用户决定放置ActiveAndroid,您都可以使用预先填充的数据库。