Ich entwickle eine Android App mit Clean Architecture und ich migriere sie nach RxJava 2.x. Ich muss einige Netzwerkanforderungen an eine Seifen Service machen, so I definiert die API-Schnittstelle im Bereich Modul:RxJava 2.x: Soll ich Flowable oder Single/Compleable verwenden?
public interface SiginterApi {
Observable<User> login(String user, String password);
...
Observable<List<Campaign>> getCampaigns(List<Long> campaignIds);
}
ich, dass eine Netzwerkanfrage gelesen haben sollte mit „Flowable
“ gemacht werden, weil der Gegendruck Management, da es "kalt beobachtbar" ist. Auf der anderen Seite weiß ich, das Ergebnis der Anfrage wird Erfolg (mit der Antwort) oder Fehler, so dass ich nicht weiß, ob ich Flowable
oder Single
oder sogar Observable
verwenden sollte.
Außerdem habe ich eine Datenbank wie diese Zugriffe:
public interface UserRepository extends Repository {
Observable<Void> saveUser(String username, String hashedPassword, boolean logged, User user);
...
Observable<User> findUser(String username, String hashedPassword);
}
Ich weiß nicht, ob ich Completable
/Flowable
/Observable
in saveUser
Verfahren und Single
/Flowable
/Observable
in findUser
Methode verwendet werden soll.
Danke für die Antwort. Ich stimme zu, dass 'Single' die bessere Option ist, um Anfragen zu vernetzen, wegen der einzelnen Antwort, aber wie Sie in dieser [Frage] (http://stackoverflow.com/a/40326875/6389621) und vielen anderen Blogs lesen können Über RxJava 2.x sollten Netzwerk- und Datenbank-Accessoren mit 'Flowable' erstellt werden. –
Ich glaube, der Autor bezieht sich auf Netzwerk- und Datenbankverbindungen, die sich wie ein Strom von Ereignissen verhalten. Wenn ich das richtig verstehe, ist das anders als bei einem HTTP-Anfrage/Antwort-Paar oder einer einzelnen Datenbankabfrage. – npace
Also denken Sie, dass der Schlüssel zwischen einem 'Observable' (' Single'/'Completable') und' Flowable' zu entscheiden ist, ob Sie eine Gegendruckkontrolle benötigen oder nicht. Der Quelltyp (Kaltquelle, Netzwerk-/Datenbank-Accessoren ...) ist davon nicht betroffen. –