【问题标题】:ActiveAndroid database location change dynamicallyActiveAndroid 数据库位置动态变化
【发布时间】:2014-10-07 19:21:24
【问题描述】:

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

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

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

ActiveAndroid.location = customLocation;

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

任何帮助表示赞赏。

【问题讨论】:

    标签: android database orm activeandroid


    【解决方案1】:

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

    而不是通过在 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 预填充的数据库。

    【讨论】:

    • 好东西。你有没有想过如何在初始化后更改数据库路径或名称?例如,如果您允许用户在应用运行时更改应用设置中的数据库位置?
    猜你喜欢
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2015-08-22
    相关资源
    最近更新 更多