所以我的应用程序几乎准备好了。我一直想知道何时更新数据库的升级将如何运作。
基本上这是一个测验,我将添加和删除问题,例如需要保存用户的个人数据。有多少正确和错误的答案以及哪些问题等。
如果您认为我可能想要删除或添加新问题,这会变得更复杂一些,甚至在更改结构时更糟糕。
但我现在要担心这段代码吗?我想我的应用程序的第二个版本可能包含更新代码。这将允许我提前发布初始应用程序并担心后台升级。
这可能吗?或者您必须拥有待机的升级代码吗?
答案 0 :(得分:3)
您现在应该使用SQLiteOpenHelper
,以后可以担心onUpgrade()
- 代码。
如果增加数据库的版本号,则执行该方法。您可以在那里处理/管理您的更新。
初始版本号传递给constructor。
您还可以使用SQLiteDatabase
- 对象(传递给onUpgrade()
- 方法)的相应方法来获取/设置它:setVersion()
和getVersion()
答案 1 :(得分:1)
基本上SQLiteOpenHelper.onUpgrade()
的目的是让程序员在更改数据库的版本号时对数据库进行更改。在大多数情况下,它可能与数据库/表格方案/结构的变化有关。然而,如果您将处理SQLiteOpenHelper.onUpgrade()
数据库内容更改,则没有错。
在我的情况下,我选择了另一种方法,因为DB内容立即被用户更改,我有资源XML文件(kinda templates.xml),其中包含有关可用主数据的基本信息(如在您的案例测验中)和期间首先打开数据库我只是将主数据上传到数据库。所以你可以做同样的事情