或者您必须自己做吗?我一直认为它确实如此,但是用户报告的错误与它没有这样做是一致的。文档对此并不清楚。
答案 0 :(得分:1)
不,它没有。当数据库版本与SqliteOpenHelper中指定的版本不同时,将调用onUpgrade方法。
http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html#onUpgrade(android.database.sqlite.SQLiteDatabase, int, int)
从签名中,您将收到当前数据库的旧版本以及您尝试升级到的新版本。通常是您指定的那个。您必须记住,用户并不总是更新您发布的每个应用程序,因此您需要保留更改脚本以进行多个版本升级。
答案 1 :(得分:0)
不,它不会改变。
更改数据库版本时会自动调用它。 在此处详细了解:http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
答案 2 :(得分:0)
您不必自己这样做。
从source code of SQLiteOpenHelper
可以看出,在onCreate
/ onUpgrade
/ onDowngrade
方法的重载成功执行后,数据库版本会自动更改:
if (version == 0) {
onCreate(db);
} else {
if (version > mNewVersion) {
onDowngrade(db, version, mNewVersion);
} else {
onUpgrade(db, version, mNewVersion);
}
}
db.setVersion(mNewVersion);
db.setTransactionSuccessful();