还是必须自己做?我一直认为它确实如此,但用户报告的错误与它不这样做是一致的。文档对此并不清楚。
问问题
510 次
3 回答
1
不,不是的。当 DB Version 与 SqliteOpenHelper 中指定的版本不同时调用 onUpgrade 方法。
http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html#onUpgrade(android.database.sqlite.SQLiteDatabase, int, int)
从签名中,您将收到当前数据库的旧版本和您尝试升级到的新版本。通常是您指定的那个。您必须记住,用户并不总是更新您发布的每个应用程序,因此您需要保留更改脚本以进行多个版本升级。
于 2013-07-29T06:34:29.320 回答
0
您不必自己执行此操作。
从源码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();
于 2013-07-29T06:44:11.030 回答
0
不,它不会改变。
当数据库版本更改时会自动调用它。阅读更多关于这里:http: //developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
于 2013-07-29T06:35:19.503 回答