Android 改造 - 回调与无回调
Android Retrofit - Callback vs no call back
我正在分析 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);
}
我对两件事感到困惑:
接口中的return值是List但对我来说应该是无效的,因为retrofit会使用gson将json响应转换为Repo POJO。我所要做的就是创建 Repo POJO,所以我希望最后一段代码是这样的:
public 接口 GitHubService {
@GET("/users/{user}/repos")
void listRepos(@Path("user") String user,Callback cb);
}
return 值的用途是什么?
- 我的第二个问题是:回调是否只需要知道请求是成功还是失败,正如我从文档中看到的那样,回调有两种方法:失败和成功。
我想试着回答你的问题
1.你是对的,return 值应该是 void
,因为你将从 Callback
得到响应
2。是的,需要Callback
来检查请求是否成功,也需要它来获取服务器响应。
希望有用,干杯!
EDIT :您可以使用直接 return 值或使用回调来获取响应。引用改造文档站点:
- return类型的方法将被同步执行。
- 异步执行要求方法的最后一个参数是回调。
所以我想文档确实回答了这个问题,如果您希望异步执行,则需要回调 :D
我正在分析 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);
}
我对两件事感到困惑:
接口中的return值是List但对我来说应该是无效的,因为retrofit会使用gson将json响应转换为Repo POJO。我所要做的就是创建 Repo POJO,所以我希望最后一段代码是这样的:
public 接口 GitHubService {
@GET("/users/{user}/repos")
void listRepos(@Path("user") String user,Callback cb); }
return 值的用途是什么?
- 我的第二个问题是:回调是否只需要知道请求是成功还是失败,正如我从文档中看到的那样,回调有两种方法:失败和成功。
我想试着回答你的问题
1.你是对的,return 值应该是 void
,因为你将从 Callback
2。是的,需要Callback
来检查请求是否成功,也需要它来获取服务器响应。
希望有用,干杯!
EDIT :您可以使用直接 return 值或使用回调来获取响应。引用改造文档站点:
- return类型的方法将被同步执行。
- 异步执行要求方法的最后一个参数是回调。
所以我想文档确实回答了这个问题,如果您希望异步执行,则需要回调 :D