使用预加载的SQLite更新应用程序

时间:2011-08-05 09:55:37

标签: android sqlite

我的应用程序使用预加载并从/ assets复制到数据/数据(Ship an application with a database)数据库,这只是一个产品数据表,并且是“只读”,因为用户不保存到数据库。如果我向数据库表中添加更多产品,我需要将其提供给现有用户。如果我使用新数据库更新我的应用程序,更新过程将删除从资产目录复制到数据/数据的旧数据库,从而允许“DBexists”检查在首次运行更新版本时失败,从而触发复制新数据库从/资产到数据/数据?

2 个答案:

答案 0 :(得分:1)

简短回答,是的,如果您将以下代码段放在onUpgrade()方法中:

try {
    copyDataBase("database.db");
} catch (IOException e) {
    Log.w(TAG, e);
}

在写入之前删除copyDataBase()中的db文件可能是值得的,只是为了减少它的可能性。

注意:这会使用您所链接问题的已接受答案中使用的实现。

答案 1 :(得分:0)

我能想到的唯一一件事就是在SQLiteOpenHelper实现中稍微滥用onUpgrade()方法,并通过使用新的版本号调用此数据库来更改数据库。让它做你在该方法中需要做的任何事情。

这么说,我对Android应用更新过程并不是很了解,所以这可能会有所不同。