我有一个android应用程序,它包含assets文件夹中的sqlite数据库。 在DB中我有几个表,其中一个是用户数据(通过使用应用程序随时间更新 - 当用户安装应用程序时此表为空)。 其他表存储我更新的数据。
问题是:当用户从市场获得我的应用程序的更新版本(资产文件夹中的sqlite数据库)时,我需要使用该应用程序保持用户更新的数据,但我确实想要更新其他表格(包括我的数据)。
这样做的正确方法是什么?
谢谢你:)
答案 0 :(得分:0)
保留每个更改的版本号,并为可能的组合实现onUpgrade方法。请参阅javadoc for SQLiteOpenHelper
中的详情答案 1 :(得分:0)
由于您在首次创建数据库时表示您的表为空,因此无需从/assets
- 文件夹添加数据库。
相反,您可以使用SQLiteOpenHelper
,它提供onCreate()
- 方法,可以进行初始表创建(如果需要,可以添加一些示例数据)。
如果您随后更新了应用程序,只需增加数据库版本并调用onUpgrade()
- 方法,然后您可以在其中执行数据库更新。
请参阅另一个问题:Run some code when user update my app
如果您的应用程序附带了一个庞大的数据库并且在SQLiteOpenHelper
中插入条目不是正确的方法,您仍然可以检查数据库是否已经存在,然后进行更新(通过{{1方法)并保留用户数据。