webentwicklung-frage-antwort-db.com.de

Wie handhaben Sie die Rotation mit Retrofit und RxJava/RxAndroid in Activity

Ich habe hier gelesen, dass wir einen globalen Cache verwenden können, um die Rotation zu behandeln.

Sie können dies verhindern, indem Sie den Cache oder die Observable-Operatoren verwenden, um sicherzustellen, dass das Observable den Aktivitätslebenszyklus überlebt (z. B. durch Speichern in einem globalen Cache, in einem Fragment usw.).

Aber wie erreicht man das? Jemand kann mich auf ein Beispiel verweisen, wie das geht? Oder kennen Sie vielleicht einen besseren Ansatz, um mit Konfigurationsänderungen umzugehen?

BEARBEITEN:

Für den Moment habe ich viele Möglichkeiten gefunden, aber am Ende habe ich die RxBus-Realisierung verwendet. Ein schönes Beispiel für die Verwendung von RxBus finden Sie hier .

Ich habe eine Demoanwendung ( https://github.com/pmellaaho/RxApp ) erstellt, um zu testen, wie die verschiedenen Situationen in der Android-Anwendung behandelt werden. Um es kurz zu machen, verwende ich ein Einzelmodell von Activity, um die Antwort vom Netzwerk zu erhalten. Dies ermöglicht das Zwischenspeichern von Antworten, den Zugriff auf die Daten von mehreren UI-Komponenten, das Abonnieren anstehender Anforderungen sowie das Bereitstellen von Mock-Daten für automatisierte UI-Tests. 

5
pmellaaho

Ich habe kürzlich den Loader zusammen mit ConnectableObservable verwendet, um bessere Rotationen während des RxJava2-Streams zu bewältigen. Ich habe sogar einen Medium Post erstellt, der meine Herangehensweise ausführlich erläutert.

Grundsätzlich müssen Sie das Beobachtbare (ConnectableObservable) in einem Loader mit einem Transformer ablegen und anschließend erneut abonnieren, wenn die Aktivität/das Fragment nach der Zerstörung wieder aufgenommen wird.

0
Phil