我有一个Android应用程序,我即将发布,并且正在审阅我的一些代码。我担心我的SQLiteOpenHelper
的实施。具体来说,我想验证onUpgrade
方法中参考的oldVersion
和newVersion
。这是基于我的AndroidManifest.xml中的versionCode
?还是这个值是完全独立的,特定于数据库?如果是后者,数据库如何确定版本?基于SQLiteOpenHelper版本号是什么?
回答
这是基于我的AndroidManifest.xml中的versionCode吗?
通常情况下,除非每次向应用程序发布升级时升级模式,即使这样,“基于”也大多是巧合。
或者这个值是完全独立的东西,具体到数据库?
是的。每次有新的数据库模式时,都会增加版本。
如果是后者,数据库如何确定版本?
在每个onCreate()
和onUpgrade()
,Android的坚持在元数据数据库中的表的数据库模式的当时的新版本。这就是Android在将来使用助手时会检查的内容,并将该值与您在构造函数SQLiteOpenHelper
中提供的值进行比较。
那么“新版本”价值从哪里来?每当'onCreate'被调用时它总是1吗?或者有没有办法让我指定这个值应该是什么?我问的原因是我正在从'onCreate'运行5次迁移。如何让Android在下次需要更新时开始迁移#6? –
啊,我想我意识到我错过了什么。构造函数需要一个版本号,我完全忘记了我的重写。这就是版本号码的来源。 :) –
@MattHuggins:IOW,版本号来自你。或者你正在输入密码的忠诚仆从,无论情况如何。 :-) – CommonsWare
- 1. solusOs - 是基于什么Linux发行版?
- 2. 什么是各种AccuRev版本号?
- 3. SQLiteOpenHelper版本的最大值是多少?
- 4. 基于版本
- 5. Magento Enterprise 1.8.0版基于什么标准版本?
- 6. 评估版本号是否小于另一个版本号
- 7. 为什么SQLiteOpenHelper不是只调用SQLiteHelper?
- 8. 为什么使用SQLiteOpenHelper而不是SQLiteDatabase?
- 9. 如何设置基于与CruiseControl.net Subversion的版本号的版本号
- 10. 什么是基于Facebook PIXEL?
- 11. 什么是mach_absolute_time基于iPhone
- 12. TFPT unshelve&Migrate:什么是合并的基本版本?
- 13. 什么是SQL版本662?
- 14. TortoiseSVN:什么是头版本
- 15. vbLeftJustify什么是.net版本?
- 16. 什么是版本指令?
- 17. Zurb基金会 - 什么版本?
- 18. 基本意图是什么?
- 19. 什么是从基本
- 20. 旧版swift中用于xcode版本8.0(8A218a)的swift版本是什么?
- 21. 为什么自动增加版本号?
- 22. 使用什么版本编号方案?
- 23. SQLiteOpenHelper切换数据库版本
- 24. 基于js的API中令牌的基本原理是什么
- 25. JavaScript的版本号和它们对应的ECMAScript版本是什么?
- 26. 为什么CDC基于旧版本的Java,而不是当前SE的子集?
- 27. 什么是处理基于Python版本的依赖关系的最佳方式?
- 28. 什么是<aws-messaging:annotation-driven-queue-listener />的基于Java的配置版本?
- 29. 源行号对应于基本没什么
- 30. HTML5不基于SGML,那么它是基于什么呢?
后面,你只需要在你的SQLiteOpenHelper类中声明一个简单的int变量,这是你每次更新任何东西时需要改变的唯一变量。 –