Szukaj…


Skonfiguruj modernizację i RxJava

Retrofit2 posiada obsługę wielu podłączanych mechanizmów wykonawczych, jednym z nich jest RxJava.

Aby użyć modernizacji z RxJava, najpierw musisz dodać adapter Retrofit RxJava do swojego projektu:

compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'

następnie musisz dodać adapter podczas budowania instancji modernizacji:

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://api.example.com")
    .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
    .build();

W interfejsie użytkownika podczas definiowania interfejsu API typ zwracany powinien być Observable np .:

public interface GitHubService {
  @GET("users/{user}/repos")
  Observable<List<Repo>> listRepos(@Path("user") String user);
}

Możesz także użyć Single zamiast Observable .

Składanie żądań seryjnych

RxJava jest przydatny przy składaniu żądania szeregowego. Jeśli chcesz użyć wyniku z jednego żądania do utworzenia drugiego, możesz użyć operatora flatMap :

api.getRepo(repoId).flatMap(repo -> api.getUser(repo.getOwnerId())
    .subscribe(/*do something with the result*/);

Składanie równoległych wniosków

Za pomocą operatora zip można równolegle wysyłać żądania i łączyć wyniki, np .:

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow