私は自分のアプリのアップデートをやっていますが、これはSOAPサービスを使ってデータを送信することです、私のアイデアは各アプリケーションのアップデート時にテーブルをドロップするか、再インストールので、私はやった、この:古いデータはAndroid Sqliteデータベースに保存されています
private static final int DATABASE_VERSION = 2;
private static final String DATABASE_NAME = "name.db";
private static final String TABLE_DEMANDES = "demandes";
private static final String KEY_ID = "id";
private static final String KEY_XML = "xml";
private static final String KEY_STATUTENVOIE = "statutEnvoie";
private static final String KEY_DATEENVOIE = "dateEnvoie";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_DEMANDES);
String CREATE_DEMANDES_TABLE = "CREATE TABLE " + TABLE_DEMANDES + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_XML + " TEXT," + KEY_STATUTENVOIE + " INTEGER," + KEY_DATEENVOIE + " DATETIME" + ")";
db.execSQL(CREATE_DEMANDES_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onCreate(db);
}
しかし、私のSOAPサービスは、私のデータベース上でループを行うと、送信されていないデータを見ると、私は古いデータを見つけたが、私はテーブルを削除するために、なぜ私は理解していませんonCreateでは、なぜこのデータを取得するのですか?私は私のアプリを再インストールしました。
UPDATE:
private static final int DATABASE_VERSION = 3;
private static final String DATABASE_NAME = "name.db";
private static String DB_NAME = "Solutis";
private static final String TABLE_DEMANDES = "demandes";
private static final String KEY_ID = "id";
private static final String KEY_XML = "xml";
private static final String KEY_STATUTENVOIE = "statutEnvoie";
private static final String KEY_DATEENVOIE = "dateEnvoie";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_DEMANDES_TABLE = "CREATE TABLE " + TABLE_DEMANDES + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_XML + " TEXT," + KEY_STATUTENVOIE + " INTEGER," + KEY_DATEENVOIE + " DATETIME" + ")";
db.execSQL(CREATE_DEMANDES_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_DEMANDES);
onCreate(db);
}
onCreateにテーブルをドロップし、onUpgradeでonCreateを呼び出すと、2つのユースケースでテーブルを削除すると、どこにエラーがあるのか分かりません – Ben
onCreateでテーブルを削除しないでください。 onUpgrade。増加するバージョン番号をアップグレードするたびに。 –
いいですが、私は本当に難しい問題ですが、もっと難しいです:私は2行目がexempleで、最初はインクリメンタルな番号(id)で、2番目は各ユーザーのインストールを認識するためのuuidです。私の問題は、同じuuidと増分の数字が衝突しないようにすることです.Uuidを変更して、ユーザーがアップデートや再インストールを行うと、データベースをリロードする必要があります。 – Ben