2016-07-26 21 views
0

androidスタジオプロジェクトのassetsフォルダに格納されているデータベースをどのように再コピーしますか?assetsフォルダに格納されているデータベースを更新する方法

私は

package com.acorney.migration; 

import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteQueryBuilder; 

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper; 

/** 
* Created by acorney on 25/07/2016. 
*/ 
public class databaseHelper extends SQLiteAssetHelper { 

private static final String TAG = SQLiteAssetHelper.class.getSimpleName(); 
private static final String DATABASE_NAME = "peopleDatabase.db"; 
private static final int DATABASE_VERSION = 1; 

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

AndroidのSQLiteの資産ヘルパークラスを使用していると私は私のMainActivityでそれのインスタンスを作成し

databaseHelper dataB; 
dataB = new databaseHelper(this); 

これは、私が思うに、データ/データに空のデータベースを作成しますアセットからデータベースをコピーします

しかし、私は(SQLiteブラウザを使用して)アプリケーションの外部からデータベースを更新し、アセットフォルダに保存しました。 データベースの更新をアプリケーションにコピーするにはどうすればよいですか?資産フォルダに変更がデータベースに保存されるように

をそして、アプリの起動時に、アプリはちょうどの新しいインスタンスを作成する必要があります -

最終的には、アプリがこのデータベースに読み書きする必要がありますアセットフォルダ内のデータベース。

基本的には、すべてのデータベースの変更をassetsフォルダで行いたいのですが、これは何かできますか?

はあなたの助け

+0

アプリをアンインストールしてもう一度インストールしてください – Nisarg

+0

アプリが起動するたびにコードが実行されるようにする方法はありますか? –

+0

コードで変更を適用することはできません – Nisarg

答えて

0

ませんいただきありがとうございます、これは不可能です。 assetsフォルダはバイナリAPKの一部であり、実行時には変更できません。コンパイル時にのみ変更できます。

+0

強制的に再コンパイルする方法はありますか? –

+0

奇妙な質問です。コードがあなたのPC上でコンパイルされていることを理解してください。 – greenapps

関連する問題