使用rxjava进行改造

时间:2016-11-07 06:43:07

标签: android rx-java retrofit2

我在Android上使用Retrofit,我想使用RxJava。

仅使用Retrofit很好,但RxJava对我来说有点困难。

你能告诉我该怎么做吗?

我写了一个像下面这样的界面,但我不确定我应该在???????????

使用什么选项

提前致谢。

@GET("users")
Observable<??????????????> getUserById (@Query("id") int id);

@GET("users")
Observable<??????????????> getUserByName (@Query("name") String name);

@GET("users")
Observable<??????????????> getAllUsers ();

2 个答案:

答案 0 :(得分:1)

如你所知,你有Retrofit的经验。通常,您的网络调用将返回Call<{type}>,其中type是您从API返回的对象。

您只需将Call替换为Observable即可。所以你的功能可能看起来像:

@GET("users")
Observable<User> getUserById (@Query("id") int id);

@GET("users")
Observable<User> getUserByName (@Query("name") String name);

@GET("users")
Observable<List<User>> getAllUsers ();

可以找到有关RxJavaRetrofit一起使用的教程here

答案 1 :(得分:0)

 Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(YOUR API URL).addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJavaCallAdapterFactory.createWithScheduler(Schedulers.io()))
                .build();

并添加

compile 'com.squareup.retrofit2:retrofit:2.0.1'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.1'

gradle。

Here是参考示例