2

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

 public interface GitHubService {
  @GET("/users/{user}/repos")
  List<Repo> listRepos(@Path("user") String user);
}

这是一个带有回调的示例(我希望我做对了):

   public interface GitHubService {
  @GET("/users/{user}/repos")
  List<Repo> listRepos(@Path("user") String user,Callback<Repo> cb);
}

我对两件事感到困惑:

  1. 接口中的返回值是 List 但对我来说它应该是无效的,因为改造将使用 gson 将 json 响应转换为 Repo POJO。我所要做的就是创建 Repo POJO,所以我希望最后一段代码是这样的:

    公共接口 GitHubService {

    @GET("/users/{user}/repos")

    void listRepos(@Path("user") String user,Callback cb); }

返回值的目的是什么?

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

1 回答 1

1

我想尝试回答你的问题

1. 你是对的,返回值应该是void,因为你会得到响应Callback

2.是的,Callback需要检查请求是否成功,也可以获取服务器响应。

希望这是有用的,干杯!


编辑:您可以使用直接返回值或使用回调来获取响应。引用改造文档网站:

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

所以我想文档确实回答了它,如果您希望执行是异步的,则需要回调:D

于 2015-06-19T01:53:45.310 回答