在下次更新中替换应用程序中的数据库文件

时间:2013-04-24 13:55:29

标签: android android-sqlite

我的应用程序在assests目录中有一个数据库文件,当应用程序第一次运行或数据库不存在时,应用程序会导入它。当用户下次更新应用程序时,我想用我拥有的数据库替换数据库。 它应该只在用户更新时运行,这样就不会丢失任何数据。

有人可以帮帮我吗?

这是我的代码:http://pastie.org/private/bni5iwbob1oklyxx5atolq#66

1 个答案:

答案 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之类的幻数 你可以为它们分配一个常数。这样你就不必一直搜索你的代码。