我希望每次更新應用程序時清除我的應用的sqlite數據庫。 爲此,我在SQLiteDatabase的「onUpgrade」函數中對我的所有表進行了drop table查詢。Android數據庫版本號
我有兩個問題: - 在我的應用程序首次發佈時,我沒有做任何特殊的事情。 - 在第二次啓動時,我添加了一個「setVersion(2)」行。它調用onUpgrade方法,但日誌很奇怪:
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
Log.d("GDB", "onUpgrade "+oldVersion+" -> "+newVersion);
}
----------------------------------------------------------
DEBUG/GDB(5928): onUpgrade 2 -> 1
所以,當我做一個setVersion(),2個版本似乎切換.....
我的第二個問題是,是我第三次啓動我的應用程序,而不更改代碼(所以setVersion(2)已經在這裏),onUpgrade方法再次被調用!我是否錯過了將版本確定爲2的內容?
查看定義數據庫版本號的代碼會很有幫助。你會發布你的數據庫適配器的相關部分嗎? – Shlublu
只是一個setVersion(2),正如我所說的 – Imotep
這是看到更多的適配器將會有用的地方。我認爲你做錯了,通過覆蓋最初的數據庫版本而不是現在的版本:似乎SQLite認爲最初創建的版本是2,事實並非如此。 – Shlublu