1

我想连接不同的可观察对象来创建活动流,使用 SQLBrite 将信息持久保存到我的 android sqlite 数据库中

此流程必须遵循以下活动顺序:

1 - 创建一个负责打开事务实例的可观察对象

2 - 连接多个可观察对象,每个对象负责将数据插入表中(每个表一个可观察对象)

3.a - 如果每个数据都被插入(doOnCompleted 方法),记录这个并将我的事务实例设置为成功

3.b - 如果有错误,记录这个错误(doOnError 方法)

4 - 关闭我的事务实例(doOnTeminate 方法)

问题:

doOnError、doOnCompleted 和 doOnTerminate 等方法不会将我的事务实例作为参数发送。有办法做到这一点吗?

4

1 回答 1

1

我不相信你通过使打开连接的行为成为可观察的来获得任何东西。这是解决问题的更简单方法。

SomeObject transaction=new Transaction();
Observable.concat(obs1,obs2,obs3)
          .doOnCompleted(logStuff())
          .doOnError(e->)
          .doOnTerminate(transaction.close());
于 2015-10-22T12:56:16.457 回答