Android 如何";“等等”;从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()

我有个问题, 如何等待来自API的数据

我将编写如下代码:

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 
)