首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Retrofit回调与不回拨

问Android Retrofit回调与不回拨
EN

Stack Overflow用户
提问于 2015-06-19 01:30:40
回答 1查看 6.5K关注 0票数 2

我正在分析对android的改造,并提出了一个关于回调和不使用它们的问题。我的印象是,回调只用于客户可能希望的成功和失败响应。否则我会忽略它。下面是一个没有回调的改造接口的示例:

代码语言:javascript
复制
 public interface GitHubService {
  @GET("/users/{user}/repos")
  List<Repo> listRepos(@Path("user") String user);
}

下面是一个回调的例子(希望我做对了):

代码语言:javascript
复制
   public interface GitHubService {
  @GET("/users/{user}/repos")
  List<Repo> listRepos(@Path("user") String user,Callback<Repo> cb);
}

我对两件事感到困惑:

  1. 接口中的返回值是List,但对我来说,它应该是无效的,因为改造将使用gson将json响应转换为Repo。我所要做的就是创建Repo,因此我希望最后一段代码是这样的: 公共接口GitHubService { @GET(“/user/{user}/repos”) void listRepos(@Path(" user ")字符串用户,回调cb);}

返回值的目的是什么?

  1. 我的第二个问题是:回调是否只需要知道请求是成功还是失败,正如我从文档中看到的,回调有两种方法:失败和成功。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-19 01:53:45

我想试着回答你的问题

1.您是正确的,返回值应该是void__,因为您将从Callback获得响应

2.是的,需要Callback来检查请求是否成功,还需要它来获取服务器响应。

希望这是有用的,干杯!

编辑:您可以使用直接返回值或使用回调来获得响应。引用来自翻新文档站点的话:

  • 具有返回类型的方法将同步执行。
  • 异步执行要求方法的最后一个参数是回调。

因此,我想文档确实回答了这一点,如果您希望执行是异步的:D,则需要回调。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30928497

复制
相关文章

相似问题

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