我正在分析关于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);
}
我对两件事感到困惑:
接口中的返回值是List,但对我来说它应该是无效的,因为retrofit将使用gson将json响应转换为Repo POJO。我所要做的就是创建Repo POJO,所以我希望最后一段代码是这样的:
public interface GitHubService {
@GET( “/用户/ {用户} /回购”)
void listRepos(@Path(“user”)String user,Callback cb); }
返回值的目的是什么?
答案 0 :(得分:1)
我想尝试回答你的问题
1。你是对的,返回值应该是void
,因为你会得到Callback
2。是的,需要Callback
来检查请求是否成功,也可以获取服务器响应。
希望这很有用,欢呼!
编辑:您可以使用直接返回值或使用回调来获取响应。引自改造文档网站:
所以我猜文档真的回答了它,如果你想让执行异步,就需要回调:D