我的应用程序在assets 目录中有一个数据库文件,当应用程序第一次运行或数据库不存在时,应用程序将其导入。当用户下次更新应用程序时,我想用我拥有的数据库替换数据库。它应该只在用户更新它时运行,这样就不会丢失任何数据。
有人能帮帮我吗?
这是我的代码: http: //pastie.org/private/bni5iwbob1oklyxx5atolq#66
我的应用程序在assets 目录中有一个数据库文件,当应用程序第一次运行或数据库不存在时,应用程序将其导入。当用户下次更新应用程序时,我想用我拥有的数据库替换数据库。它应该只在用户更新它时运行,这样就不会丢失任何数据。
有人能帮帮我吗?
这是我的代码: http: //pastie.org/private/bni5iwbob1oklyxx5atolq#66
您必须更新您在构造函数中使用的 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 这样的幻数,你可以为它们分配一个常数。这样你就不必一直搜索你的代码。