rx-java
Nachrüstung und RxJava
Suche…
Richten Sie Retrofit und RxJava ein
Retrofit2 unterstützt mehrere steckbare Ausführungsmechanismen. Einer davon ist RxJava.
Um Retrofit mit RxJava verwenden zu können, müssen Sie zunächst den Retrofit RxJava-Adapter zu Ihrem Projekt hinzufügen:
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
Dann müssen Sie den Adapter hinzufügen, wenn Sie Ihre Retrofit-Instanz erstellen:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.example.com")
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
In Ihrer Schnittstelle , wenn Sie definieren sollten die API der Rückgabetyp sein Observable zB:
public interface GitHubService {
@GET("users/{user}/repos")
Observable<List<Repo>> listRepos(@Path("user") String user);
}
Sie können auch Single anstelle von Observable .
Serienanfragen stellen
RxJava ist praktisch, wenn Sie eine Serienanforderung durchführen. Wenn Sie das Ergebnis einer Anfrage für eine andere verwenden flatMap können Sie den flatMap Operator verwenden:
api.getRepo(repoId).flatMap(repo -> api.getUser(repo.getOwnerId())
.subscribe(/*do something with the result*/);
Parallele Anfragen stellen
Sie können den zip Operator verwenden, um eine Anfrage parallel zu stellen und die Ergebnisse zu kombinieren, zB:
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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow