连接不同类型的可观察对象

Concat different types of observables

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

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

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

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

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

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

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

问题:

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

我认为将打开连接的操作设为可观察的操作不会给您带来任何好处。这里有一个更简单的方法来解决您的问题。

SomeObject transaction=new Transaction();
Observable.concat(obs1,obs2,obs3)
          .doOnCompleted(logStuff())
          .doOnError(e->)
          .doOnTerminate(transaction.close());