タイトルの通り、アプリの設定関連のテーブルをassets内にsqliteのDBファイルとして事前に用意しておき、
初回およびDBのアップグレード時にassetsから自動で更新できるようにしたいです。
SQLiteOpenHelper.getReadableDatabase
SQLiteOpenHelper.getWritableDatabase
を呼んだ際に、onCreateやonUpgradeが自動で呼ばれるようなので、
この仕組みを使用して、コピーが実行されるようにしてみました。
DatabaseHelper extends SQLiteOpenHelper クラスです。
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DATABASE_VERSION);
mContext = context;
mDatabasePath = mContext.getDatabasePath(DB_NAME);
}
// データベースを作成したタイミングで呼び出される。
@Override
public void onCreate(SQLiteDatabase db) {
// TODO 自動生成されたメソッド・スタブ
// assetsのDBファイルをコピーする。
copyAssetFileToDatabase();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO 自動生成されたメソッド・スタブ
// assetsのDBファイルをコピーする。
copyAssetFileToDatabase();
}
デバッグするとコピー処理は行われるのですが、
/data/data/<project>/database/<DBfile>
のファイルを確認すると、android_metadataテーブルしかありません。
何が問題なのかわかりません。
原因がわかる方、教えてください。