我有一个即将发布的 Android 应用程序,我正在审查我的一些代码。我担心我的SQLiteOpenHelper
. 具体来说,我想验证方法中的oldVersion
和newVersion
引用是什么onUpgrade
。这是基于versionCode
我的 AndroidManifest.xml 吗?或者这个值是完全独立的,特定于数据库?如果是后者,那么数据库是如何确定版本的呢?
问问题
1649 次
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 回答