Java Android:执行方法并等待结果(对于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”。 (为此,我重命名旧表,创建新表,将所有记

显然,为了管理SQLite数据库,我创建了一个应用程序,其中使用了SQLite数据库自定义类

我创建了一个“ChangeLog”类来检查模式的修改。 例如:

  • 版本1.0.0:“table01”有3列,带有“NOTNULL”约束
  • 版本1.0.1:“table01”有3列,没有“NOTNULL”约束
如果用户安装了我的应用程序的最新版本,我会从我的ChangeLog类中调用一个方法applyModifies(),以便应用一些修改和更改“table01”。 (为此,我重命名旧表,创建新表,将所有记录复制到新表,删除旧表,最后用原始名称重命名新表。)

我需要在applyModifies()中调用几个方法(update001()、update002()等)。 如果第一个方法失败,则不必启动下一个方法

//[... 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。