Android 如何";“等等”;从API获取数据
我有个问题, 如何等待来自API的数据 我将编写如下代码:Android 如何";“等等”;从API获取数据,android,retrofit,rx-java,Android,Retrofit,Rx Java,我有个问题, 如何等待来自API的数据 我将编写如下代码: List<User> userList = dataAPI.getAllUser(); List userList=dataAPI.getAllUser(); 我会有一个列表,我想在哪里就在哪里使用它。 我不想覆盖任何方法 DataAPI: public class DataAPI { public DataAPI(){ retrofit = new Retrofit.Builder()
List<User> userList = dataAPI.getAllUser();
List userList=dataAPI.getAllUser();
我会有一个列表,我想在哪里就在哪里使用它。
我不想覆盖任何方法
DataAPI:
public class DataAPI {
public DataAPI(){
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
userAPI = retrofit.create(UserService.class);
public class DataAPI {
[...]
private UsertService userAPI;
public DataAPI(){
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
userAPI = retrofit.create(UserService.class);
}
Observable<List<User>> getAllUser() {
return userAPI.getAllUser();
}
}
公共类DataAPI{
公共数据API(){
改装=新改装.Builder()
.baseUrl(基本URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
userAPI=reformation.create(UserService.class);
公共类DataAPI{
[...]
私有用户服务用户API;
公共数据API(){
改装=新改装.Builder()
.baseUrl(基本URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
userAPI=reformation.create(UserService.class);
}
可观测的getAllUser(){
返回userAPI.getAllUser();
}
}
用户服务
@GET("/user/all")
Observable<List<User>> getAllUser();
@获取(“/user/all”)
可观察的getaluser();
可以使用rxJava完成,有关更多详细信息:您只需设置超时,并在需要等待来自服务的响应时增加超时。(优先考虑writeTimeout)
@库贝克,你需要做的是订阅可观察的。 您可能应该做的是:
userAPI.getAllUser()
.subscribeOn(Schedulers.IO)
.observeOn(AndroidSchedulers.Main)
.subscribe(
// do some stuff
)
有关如何使用subscribe方法的文档,请参阅:我使用了RXJava,但它返回我类型的object Observer
userAPI.getAllUser()
.subscribeOn(Schedulers.IO)
.observeOn(AndroidSchedulers.Main)
.subscribe(
// do some stuff
)