1.关于onCreate()和onUpgrade()
onCreate(..)每当应用程序刚刚安装时调用。 onUpgrade每当升级和启动应用程序并且数据库版本不同时调用。
2.增加db版本
你需要一个像这样的构造函数:MyOpenHelper(Context context) {
super(context, "dbname", null, 2); // 2 is the database version}
重要提示:单独增加应用程序版本是不够的onUpgrade!
3.不要忘记你的新用户!
别忘了添加database.execSQL(DATABASE_CREATE_color);
您的onCreate()方法或新安装的应用程序将缺少该表。
4.如何处理多个数据库随时间的变化
如果您有连续的应用程序升级,其中有几个已进行数据库升级,您需要确保检查oldVersion:onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch(oldVersion) {
case 1:
db.execSQL(DATABASE_CREATE_color);
// we want both updates, so no break statement here...
case 2:
db.execSQL(DATABASE_CREATE_someothertable);
}}
这样,当用户从版本1升级到版本3时,他们将获得两个更新。当用户从版本2升级到3时,他们只会获得版本3更新...毕竟,每次发布更新时,都不能指望100%的用户群升级。有时他们会跳过更新或12 :)
5.在开发过程中保持您的版本号控制
最后......打电话adb uninstall
完全卸载应用程序。当你再次安装时,你可以保证在开发时onCreate不必将数据库版本增加到平流层......