2016-07-28 30 views
0

Ich verwende Retrofit mit , um einige Daten von meinem Server in meiner Splash-Aktivität zu erhalten. Jetzt , wenn der Anruf beendet ist, schreibt er Daten an Gson Modellklassen automatisch,Retrofit 2, wie kann ich auf empfangene ArrayList in anderen Aktivitäten zugreifen?

Im Moment habe ich gemacht statisch ArrayLists diese Modellklassen und schreibt Daten, um sie von Call-Antwort, aber das klingt nicht wie ein guter Ansatz.

Ich fragte mich, was ist der bessere Ansatz, um dieses Problem zu lösen?

Gibt es trotzdem Ich kann Daten von diesen Modellklassen direkt in andere Aktivitäten unter Verwendung bekommen?

oder ich würde sie von einer Aktivität an andere senden? Wenn ja, wie kann ich sie senden, da sie bereits eine Annotation mit Serialisierung haben.

Dank

+1

Senden Sie es über EventBus. – Vucko

+0

Vielleicht ein guter Weg, um es zu tun ist mit dem Beobachter Muster mit rxjava: http://randomdotnext.com/retrofit-rxjava/ –

Antwort

1

Im moment gibt es mehr mögliche Lösungen wie diese lösen:

1) Verwendung EventBus (zB Otto Bus) und geben sie diese über. Sie können auch RxJava und Observable Muster verwenden, aber das erfordert mehr Arbeit.

2) Erstellen Sie eine Dataholder Singleton, speichern Daten in sie und es verwenden, überall müssen Sie

3) Führen Sie es über eine Absichts Aktivität

ich persönlich 1 bevorzugen und 2, da die Datenweitergabe durch die Absicht bietet nicht den Luxus der gemeinsamen Daten. RxJava (+ MVP) bietet auch viele andere Vorteile, aber es ist nicht das Thema Ihrer Frage.

+0

Hallo slanecek danke für Ihre detaillierte Antwort, ich sehe "Otto" ist veraltet zugunsten von 'RxJava' , während [EventBus] (https://github.com/greenrobot/EventBus) regelmäßig aktualisiert wird, ist es besser, 'EventBus' zu verwenden? und wie der Subskribent in 'MainActivity' Daten erhält, wenn 'MainActivity' noch nicht erstellt wurde, wenn wir Ereignisse von' SplashActivity' versenden? – Max

+0

@Anders Sie können Sticky Events verwenden, http://www.andreas-schrade.de/2015/11/28/android-how-to-use-the-greenrobot-eventbus/ – slanecek