4

我想在资产文件夹中使用大型数据库发布我的应用程序。Android SQLiteAssetHelper似乎是解决这个问题的方法。

但是,该应用程序也使用 ormlite,并且它有许多映射到数据库表的 Java 对象。如何让 ormlite 使用预填充的数据库?

4

2 回答 2

0

我创建了我自己的扩展 OrmLiteSqliteOpenHelper 的 SqliteOpenHelper,然后在里面我复制了 SQLiteAssetHelper 中的代码。

于 2014-05-23T15:17:10.113 回答
0

您可以摆脱 SQLiteAssetHelper 并实现此DatabaseInitializer 类,它将您的数据库(如果它不存在)复制到data/data/yourapp/databases/yourdb.db(ormlite 生成数据库的文件夹)

在您的 DatabaseHelper 构造函数中:

public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);

    DatabaseInitializer initializer = new DatabaseInitializer(context);
    try {
        initializer.createDatabase();
        initializer.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
}

干净简单的解决方案

一些小缺点:
- 仅适用于 Android 2.2.3+
- 注意大小(3mb 没有遇到任何问题)

于 2015-01-01T21:26:50.003 回答