@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
LogUtil.i("DB", "--start alterTabel");
updateTables(db);
}
但是,噹噹前安裝的APP的DataBaseVersion 高於 老版本的DataBaseVersion, 就會調用 onUpgrade() 方法。Android 數據表的更新的 解決方案?
Android 數據表的更新的 解決方案?
在開發的過程中,我們難免遇到一些問題,比如 數據庫中表結構的改變。但是表又不可以直接的alter 修改字段, 添加字段和刪除字段是可以的。
我們在開發的時候,當我們修改了 APP 表中的結構,但是之前發佈的低版本,還沒有修改,因此 一些用戶在沒有刪除原有數據的情況下,直接安裝了我們高版本的APP,應用會直接的崩潰掉。 這是因爲 數據表中的數據緩存, 再插入數據的時候, 我們的表結構已經改變量了。但是 緩存沒有修改,所以直接崩潰。
修改的原理:
Android 的數據庫中 DataBaseVersion, 用來處理數據庫的更新, 一般是不會調用
所有我們 只需要修改 DataBaseVersion 的 值即可!
裏面的處理方案: 比較簡單 就是 刪除緩存中的表, 之後再重新創建表。就可以了!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.