我希望每次更新应用程序时清除我的应用的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