可以在并行螺栓中运行螺栓任务在Android上返回非Void类型吗?

时间:2016-01-04 13:36:00

标签: android multithreading parse-platform parallel-processing bolts-framework

我尝试使用Facebook / Parse Bolts框架在Android上并行运行多个任务。 or another level of errors似乎表明documentation for running tasks in parallel的结果将始终为Void。

有没有办法获得一个或多个并行化任务的实际结果?

2 个答案:

答案 0 :(得分:1)

您可以访问以下任务的结果:

ArrayList<Task<Boolean>> tasks = getTasks();
Task.whenAll(tasks).onSuccess(new Continuation<Void, Void>() {
    @Override
    public Void then(Task<Void> task) throws Exception {
        for (Task<Boolean> t : tasks) {
            doSomething(t.getResult());
        }
        return null;
    }
});

答案 1 :(得分:0)

whenAll的续篇中,您可以直接从子任务中获得结果:

final Task<A> a = // ...
final Task<B> b = // ...

Task.whenAll(Arrays.asList(a, b)).continueWithTask((t) -> {
  if (!a.isFaulted()) {
    return doSomethingAsync(a.getResult());
  }
  if (!b.isFaulted()) {
    return doSomethingElseAsync(b.getResult());
  }

  // ...

  return t;
});