SQLiteOpenHelper onUpgrade方法是否实际更改了数据库的版本?

时间:2013-07-29 06:25:29

标签: android sqlite android-sqlite

或者您必须自己做吗?我一直认为它确实如此,但是用户报告的错误与它没有这样做是一致的。文档对此并不清楚。

3 个答案:

答案 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();