0

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

4

3 回答 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//方法执行成功后,数据库版本会自动改变onUpgradeonDowngrade

                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 回答