から作成される、SQLiteのデータベースを再利用するのではなく、作成された - 既存のデータベースが消失します。ここで、SQLiteのデータベースではなく、再利用
は、私のクラスは
class HDDBAdapter {
int DB_LOCA_VERSION = 1;
HDDBOpenHelper hdHelper;
HDDBAdapter(_ctxt) {
hdHelper = new HDDBOpenHelper(_ctxt, "mydb.db", null, DB_LOCA_VERSION);
}
open() {
try {
db =hdHelper.getWritableDatabase();
}
catch ...
}
static class HDDBOpenHelper extends SQLiteopenHelper {
public HunyDewDBOpenHelper(Context ct, String n, CursorFactory cf, int v) {
super(ct, n, cf, vv);
}
private static final String DB_CREATE_BOX = "create table " + "mydb.db" + "("
+ ... + ");";
public void onCreate(SQLiteDatabase arg0) {
arg0.setVersion(DB_LOCA_VERSION);
arg0.execSQL(DB_CREATE_BOX);
}
public void onOpen(SQLiteDatabase db) {
// TODO Auto-generated method stub
super.onOpen(db);
}
}
私はアプリケーションを初めて実行している方法です - アプリケーションは、私の入力を備えたデータベースを作成します。その後、私はアプリケーションの新しいバージョンを読み込みます - DB_LOCA_VERSION
は同じままです。新しいバージョンでは、変更されたデータベースに関連しないロジックです。
だから私は、最初のアプリケーションを「強制停止」(「データクリア」を実行されていない)、その後、アプリケーションをアンインストールします。今度は新しいバージョンを実行します。この新しいバージョンは既存のデータベースを使用しません。新しいバージョンを作成します。何故ですか?私は既存のデータベースを使いたいです。私がここに何かを紛失している場合は、私に知らせてください。手がかり/ポインタ/質問は参考になります。
私はそれをインストールすると明らかにgetWritableDatabase
で失敗しますので、onCreate
が最初に呼び出されてからonOpen
の前に失敗します。 HDDBAdapter
のコンストラクタは、アプリのバージョン間で変更されていませんのでご注意ください - それは、既存の「mydb.db」ためhdHelper
を得るべきではないのですか? getWritableDatabase
を持っていないとonCreate
が呼び出されます。
は、だから私は、最初のアプリケーションを「強制停止」(「データクリア」を実行されていない)、その後、アプリケーションをアンインストールし
OK - 私は明示的な「クリアデータ」は、それを指摘いただきありがとうございます:-(データベースを削除すると思ったので、どのように私はアプリが新しいアプリをインストールするには、アンインストールし、既存のデータベースを削除しないでください – Abhi
多分私が尋ねる必要があります。?それ私が開発中のadbを-rインストールしないことを意味新しい質問??だけでアプリを再インストールしていないのはなぜ – Abhi
として? – Cristian