rx-java
Retrofit en RxJava
Zoeken…
Retrofit en RxJava instellen
Retrofit2 wordt geleverd met ondersteuning voor meerdere inplugbare uitvoeringsmechanismen, waaronder RxJava.
Om retrofit met RxJava te gebruiken, moet u eerst de Retrofit RxJava-adapter aan uw project toevoegen:
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
dan moet u de adapter toevoegen bij het bouwen van uw retrofit-exemplaar:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.example.com")
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
Wanneer u in uw interface de API definieert, moet het Observable bijvoorbeeld:
public interface GitHubService {
@GET("users/{user}/repos")
Observable<List<Repo>> listRepos(@Path("user") String user);
}
Je kunt ook Single plaats van Observable .
Seriële verzoeken doen
RxJava is handig bij het maken van een serieel verzoek. Als u het resultaat van het ene verzoek wilt gebruiken om een ander te maken, kunt u de operator flatMap gebruiken:
api.getRepo(repoId).flatMap(repo -> api.getUser(repo.getOwnerId())
.subscribe(/*do something with the result*/);
Parallelle verzoeken doen
U kunt de zip operator gebruiken om parallel een verzoek in te dienen en de resultaten te combineren, bijvoorbeeld:
Observable.zip(api.getRepo(repoId1), api.getRepo(repoId2), (repo1, repo2) ->
{
//here you can combine the results
}).subscribe(/*do something with the result*/);
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow