我的应用程序在assests目录中有一个数据库文件,当应用程序第一次运行或数据库不存在时,应用程序会导入它。当用户下次更新应用程序时,我想用我拥有的数据库替换数据库。 它应该只在用户更新时运行,这样就不会丢失任何数据。
有人可以帮帮我吗?
答案 0 :(得分:1)
您必须更新在构造函数中使用的Db版本
public DbImportHelper(Context context) {
super(context, DB_NAME, null, 1);
this.myContext = context;
// TODO Auto-generated constructor stub
}
这样会调用onUpgrade 。 初始化数据库时,系统会检查Device上当前的DB版本。如果版本不匹配,则调用onUpgrade或onDownGrade方法。
因此您可以将构造函数更改为
public DbImportHelper(Context context) {
super(context, DB_NAME, null, 2);
this.myContext = context;
// TODO Auto-generated constructor stub
}
一个建议避免使用像1,2,55之类的幻数 你可以为它们分配一个常数。这样你就不必一直搜索你的代码。