2

我有一个即将发布的 Android 应用程序,我正在审查我的一些代码。我担心我的SQLiteOpenHelper. 具体来说,我想验证方法中的oldVersionnewVersion引用是什么onUpgrade。这是基于versionCode我的 AndroidManifest.xml 吗?或者这个值是完全独立的,特定于数据库?如果是后者,那么数据库是如何确定版本的呢?

4

2 回答 2

4

这是基于我的 AndroidManifest.xml 中的 versionCode 吗?

通常不会,除非您每次发布应用程序升级时都升级架构,即使这样,“基于”也大多是巧合。

或者这个值是完全独立的,特定于数据库?

是的。每次有新的数据库模式时,都会增加版本。

如果是后者,那么数据库是如何确定版本的呢?

在每个onCreate()andonUpgrade()上,Android 都会将当时新版本的数据库模式粘贴到数据库的元数据表中。这就是 Android 在您将来使用帮助程序时会检查的内容,将存储的值与您在SQLiteOpenHelper构造函数中提供的值进行比较。

于 2013-06-23T15:17:01.447 回答
0

当您解决了您的问题时,您可以在创建时自行确定。我想把这个留给想知道的人:

数据库如何确定版本..

..如果数据库已经存在?

PRAGMA user_version;它与db文件一起存储,并可通过SQLiteOpenHelper.java:getVersion().

于 2021-09-06T01:25:38.413 回答