关于应用程序更新的android sqlite

时间:2011-10-15 16:18:28

标签: android sqlite

我有一个android应用程序,它包含assets文件夹中的sqlite数据库。 在DB中我有几个表,其中一个是用户数据(通过使用应用程序随时间更新 - 当用户安装应用程序时此表为空)。 其他表存储我更新的数据。

问题是:当用户从市场获得我的应用程序的更新版本(资产文件夹中的sqlite数据库)时,我需要使用该应用程序保持用户更新的数据,但我确实想要更新其他表格(包括我的数据)。

这样做的正确方法是什么?

谢谢你:)

2 个答案:

答案 0 :(得分:0)

保留每个更改的版本号,并为可能的组合实现onUpgrade方法。请参阅javadoc for SQLiteOpenHelper

中的详情

答案 1 :(得分:0)

由于您在首次创建数据库时表示您的表为空,因此无需从/assets - 文件夹添加数据库。

相反,您可以使用SQLiteOpenHelper,它提供onCreate() - 方法,可以进行初始表创建(如果需要,可以添加一些示例数据)。

如果您随后更新了应用程序,只需增加数据库版本并调用onUpgrade() - 方法,然后您可以在其中执行数据库更新。

请参阅另一个问题:Run some code when user update my app

如果您的应用程序附带了一个庞大的数据库并且在SQLiteOpenHelper中插入条目不是正确的方法,您仍然可以检查数据库是否已经存在,然后进行更新(通过{{1方法)并保留用户数据。