TaskWithRx.java 文件源码

java
阅读 27 收藏 0 点赞 0 评论 0

项目:trabajando-en-diferido 作者:
@Override public void executeTask(final Ui ui, int totalTask) {
  List<Observable<ApiResponse>> calls = new ArrayList<>();
  for (int i = 0; i < totalTask; i++) {
    Observable<ApiResponse> apiResponseObservable = apiCall.callObservable(i + 1);
    Observable<ApiResponse> observableOnNewThread =
        apiResponseObservable.subscribeOn(Schedulers.newThread());
    calls.add(observableOnNewThread);
  }

  Observable.zip(calls, new FuncN<Long>() {
    @Override public Long call(Object... args) {
      return System.currentTimeMillis();
    }
  })
      .subscribeOn(Schedulers.newThread())
      .observeOn(AndroidSchedulers.mainThread())
      .subscribe(new Action1<Long>() {
        @Override public void call(Long time) {
          ui.showTime(time);
        }
      }, new Action1<Throwable>() {
        @Override public void call(Throwable throwable) {
          ui.showError("error " + throwable);
        }
      });
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号