首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android的改造--如何进行连续网络调用

android的改造--如何进行连续网络调用
EN

Stack Overflow用户
提问于 2015-07-17 17:45:47
回答 1查看 2K关注 0票数 1

在我的android应用程序中,我有3个网络呼叫,它们依赖于之前的调用。因此,1必须完成,然后2可以去,最后3得到运行的数据,从前一个。因此,我需要网络调用按顺序运行是目标。在一个调用完成后,它会将数据传递到下一个调用,等等。我不想使用rxJava。有没有一种改造的方法来实现这一点?我的项目已经在使用改造,所以我想继续使用它?我试过玩asynchTask,但它不干净,自从我使用改造,我想我会问。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-17 18:18:35

如果您使用的是异步s,那么对于第一个网络调用,您可以传入生成的接口,该接口表示正在与之交互的web服务。然后,在success方法中,您可以使用生成的接口实例进行第二个网络调用,使用参数化类型T返回到success中的数据,以此类推,用于第二个回调中的第三个调用。例如:

代码语言:javascript
复制
class FirstCallback implements Callback<First> {

  private Api api;

  public FirstCallback(Api api) {
    this.api = api;
  }

  void success(First data, Response response) {
    api.secondCall(data, new SecondCallback(api))
  }
}

// somewhere else in your code
api.firstCall(new FirstCallback(api));

这是一个使用异步调用链接的快速解决方案。使用同步调用(它将直接返回AsyncTask类型),这很可能看起来更有顺序,并且更容易在T中读取。例如:

代码语言:javascript
复制
class MyTask extends AsyncTask<Void, Void, Void> {

  protected Void doInBackground(Void... params) {
    First first = api.firstCall();
    Second second = api.secondCall(first);
    // ...and so on until you return the final result
  }
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31481738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档