1.关于onCreate()和onUpdate()
每当新安装应用程序时都会调用 onCreate(..)。每当应用程序升级和启动并且数据库版本不同时,都会调用 onUpgrade。
您需要一个构造函数,例如:
2.增加db版本
MyOpenHelper(Context context) {
super(context, "dbname", null, 2);
}
重要提示:仅增加应用程序版本不足以调用 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 <yourpackagename>
完全卸载应用程序。当您再次安装时,您一定会点击 onCreate 方法,这使您不必不断将数据库版本增加到平流层......