sqliteのDBファイルをassetsからコピーしたい

39 views
Skip to first unread message

ymp...@gmail.com

unread,
Sep 11, 2014, 8:04:49 PM9/11/14
to android-deve...@googlegroups.com
タイトルの通り、アプリの設定関連のテーブルを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テーブルしかありません。

何が問題なのかわかりません。
原因がわかる方、教えてください。
Reply all
Reply to author
Forward
0 new messages