4

assets フォルダー内に大きなデータベースを含むアプリを出荷したいと考えています。Android SQLiteAssetHelperがこれに対する解決策のようです。

ただし、このアプリは ormlite も使用しており、データベースのテーブルにマップする多数の Java オブジェクトがあります。ormlite で事前入力されたデータベースを使用するにはどうすればよいですか?

4

2 に答える 2

0

OrmLiteSqliteOpenHelper を拡張する独自の SqliteOpenHelper を作成し、内部で SQLiteAssetHelper にあるコードをコピーしました。

于 2014-05-23T15:17:10.113 に答える
0

SQLiteAssetHelper を取り除き、データベース(存在しない場合) を(ormlite がデータベースを生成するフォルダー) にコピーするこのDatabaseInitializer クラスを実装できます。data/data/yourapp/databases/yourdb.db

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 以降でのみ動作します
- サイズに注意してください (3 MB では問題は発生しませんでした)

于 2015-01-01T21:26:50.003 に答える