Java Android:执行方法并等待结果(对于ChangeLog)
显然,为了管理SQLite数据库,我创建了一个应用程序,其中使用了SQLite数据库自定义类 我创建了一个“ChangeLog”类来检查模式的修改。 例如:Java Android:执行方法并等待结果(对于ChangeLog),java,android,sqlite,methods,changelog,Java,Android,Sqlite,Methods,Changelog,显然,为了管理SQLite数据库,我创建了一个应用程序,其中使用了SQLite数据库自定义类 我创建了一个“ChangeLog”类来检查模式的修改。 例如: 版本1.0.0:“table01”有3列,带有“NOTNULL”约束 版本1.0.1:“table01”有3列,没有“NOTNULL”约束 如果用户安装了我的应用程序的最新版本,我会从我的ChangeLog类中调用一个方法applyModifies(),以便应用一些修改和更改“table01”。 (为此,我重命名旧表,创建新表,将所有记
- 版本1.0.0:“table01”有3列,带有“NOTNULL”约束
- 版本1.0.1:“table01”有3列,没有“NOTNULL”约束
//[... ChangeLog Class - Methods ...]
public void applyModifies() {
int version = checkVersion(); //Take version release of my app
try {
boolean b0001 = update0001();
boolean b0002 = update0002();
boolean b0003 = update0003();
} catch (Exception e) {
//
}
}
public boolean update0001() {
//Verify actual table's schema and apply modifies, if needed
//I use DB transaction to execute queries in block and wait for a result
return result;
}
通常,我可以做一些事情,比如:
boolean b0001 = update0001();
if (b0001) {
boolean b0002 = update0002();
} else {
//Previous method fails
}
但总的来说,这不是一个好的解决方案,因为我需要添加几个changelog修改来应用,我还不知道如何实现它。你说的“失败”是什么意思?您不是在使用异常吗?是的,在update001()中我有一些try/catch块,如果它捕捉到异常(或者如果由于某种原因无法执行事务),方法返回false,您为什么要这样做?只需删除try/catch.Ok,但如果删除try/catch,是否确定所有操作都将按正确的顺序执行?我的意思是,我确定数据库操作会像我在代码中插入它们一样“同步”吗?因为每个update000n()都包含插入/删除查询,我需要按顺序执行每个块。。这就是为什么我想等待来自每个更新方法的“成功”消息——这是Java,不是JavaScript。