Buscar..


Configurar Retrofit y RxJava

Retrofit2 viene con soporte para múltiples mecanismos de ejecución conectables, uno de ellos es RxJava.

Para usar la actualización con RxJava, primero debe agregar el adaptador RxJava de actualización a su proyecto:

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

luego necesita agregar el adaptador al crear su instancia de actualización:

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

En su interfaz, cuando define la API, el tipo de retorno debe ser Observable por ejemplo:

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

También puedes usar Single lugar de Observable .

Haciendo solicitudes seriales

RxJava es útil cuando se realiza una solicitud en serie. Si desea usar el resultado de una solicitud para hacer otra, puede usar el operador flatMap :

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

Haciendo peticiones paralelas

Puede utilizar el operador zip para realizar una solicitud en paralelo y combinar los resultados, por ejemplo:

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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow