1

Droidparts 库具有用于在一个事务中执行串行语句的辅助方法:

executeStatements(SQLiteDatabase db, ArrayList<String> statements)

但在现实生活中,可能会发生一些中间检查,例如:

if(some_check = some_result) { do statement_1 }
else { do statement_2 }

在这些情况下怎么办?

4

1 回答 1

1

嗯,我明白了。应该以这种方式做到这一点:

  1. 创建可调用任务
  2. 把它放在 PersistUtils.executeInTransaction(SQLiteDatabase db, Callable task)

伪代码:

/* Create Callable task */
Callable<Boolean> task = new Callable<Boolean>() {
    @Override
    public Boolean call() throws Exception {

        ... Some operations ...

        return Boolean.TRUE (or FALSE);
    }
};
/* Check result */
Boolean result = PersistUtils.executeInTransaction(getDB(), task);
于 2016-10-03T07:55:21.727 回答