我的应用程序使用预加载并从/ assets复制到数据/数据(Ship an application with a database)数据库,这只是一个产品数据表,并且是“只读”,因为用户不保存到数据库。如果我向数据库表中添加更多产品,我需要将其提供给现有用户。如果我使用新数据库更新我的应用程序,更新过程将删除从资产目录复制到数据/数据的旧数据库,从而允许“DBexists”检查在首次运行更新版本时失败,从而触发复制新数据库从/资产到数据/数据?
答案 0 :(得分:1)
简短回答,是的,如果您将以下代码段放在onUpgrade()
方法中:
try {
copyDataBase("database.db");
} catch (IOException e) {
Log.w(TAG, e);
}
在写入之前删除copyDataBase()
中的db文件可能是值得的,只是为了减少它的可能性。
注意:这会使用您所链接问题的已接受答案中使用的实现。
答案 1 :(得分:0)
我能想到的唯一一件事就是在SQLiteOpenHelper
实现中稍微滥用onUpgrade()方法,并通过使用新的版本号调用此数据库来更改数据库。让它做你在该方法中需要做的任何事情。
这么说,我对Android应用更新过程并不是很了解,所以这可能会有所不同。