2014-10-07 47 views
1

我正在开发一个Android应用程序,并认为使用ORM来利用一些数据库工作,我已经看到了一些,他们都看起来很好的工作,现在我只有一个主要问题左侧,我还没有找到一种在运行时设置数据库位置的方法。例如,我将讨论一个常见的(在这种情况下,非常真实的场景),假设你的应用程序需要完全离线工作,并且用户下载应用程序需要的数据库,一个常见的准则是提供某种文件资源管理器,用户可以指定数据目录。ActiveAndroid数据库位置动态变化

那么,让我们假设我使用ActiveAndroid ORM,我已经根据指南设置了一切,并且我在AndroidManifest中指定了数据库的名称,我甚至可以在那里设置一个静态路径,比如说, “/mnt/sdcard/data/data.db”,它会使用现有的数据库工作,我只是还没有找到做这样的事情

ActiveAndroid.location = customLocation; 

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

任何帮助表示赞赏。

回答

2

我发现了一个适用于我的解决方法,它没有太复杂,但我没有看到这个问题没有解决。

初始化而是通过

android:name 

属性在AndroidManifest您ActiveAndroid连接的,不指定任何名称或元数据属性存在,现在,官方文档指出,您可以通过

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

那么,有一个非常方便的类叫做Builder,可以通过配置类来访问,它是ActiveAndroid中的一个,而不是android.content.res中的一个,并且您可以指定一些Builder对象事,即

setDatabaseName(String name) 

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

ActiveAndroid.initialize(builder.create()) 

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

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