0

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

有人能帮帮我吗?

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

4

1 回答 1

1

您必须更新您在构造函数中使用的 Db 版本

public DbImportHelper(Context context) {
    super(context, DB_NAME, null, 1);
    this.myContext = context;
    // TODO Auto-generated constructor stub
}

这样onUpgrade就会被调用。当您初始化数据库时,系统会检查设备上存在的数据库的当前版本。如果版本不匹配,则调用 onUpgrade 或 onDownGrade 方法。

所以你可以将构造函数更改为类似

public DbImportHelper(Context context) {
    super(context, DB_NAME, null, 2);
    this.myContext = context;
    // TODO Auto-generated constructor stub
}

一个建议避免使用像 1,2,55 这样的幻数,你可以为它们分配一个常数。这样你就不必一直搜索你的代码。

于 2013-04-26T13:27:47.210 回答