2016-07-28 48 views
0

我正在使用Retrofit和Gson在我的Splash活动中从我的服务器获取一些数据。 现在通话结束时,将数据写入Gson模型类自动,改造2,如何在其他活动中访问接收的ArrayList?

现在我已经做静态的模型类的ArrayLists和呼叫响应将数据写入到他们,但这并不听起来像一个不错的办法。

我想知道什么是解决这个问题的更好方法?

是否有无论如何我可以从这些模型类直接在其他活动中使用Gson

或者我将不得不将他们从一项活动发送给其他人?如果是这样,那么我怎么能发送他们,因为他们已经有序列化注释。

感谢

+1

通过EventBus发送。 – Vucko

+0

也许一个很好的方法是使用rxjava的观察者模式:http://randomdotnext.com/retrofit-rxjava/ –

回答

1

有就更有可能的解决方案如何解决这个问题:

1)使用EventBus(例如Otto Bus),并通过这个口岸。您也可以使用RxJava和Observable模式,但这需要更多工作。

2)创建一个DataHolder单,在其存储数据并通过意向在任何地方使用它,你需要

3)它传递到活动

我个人是比较喜欢1和2,因为传递数据通过意图不提供共享数据的奢侈品。 RxJava(+ MVP)还提供了许多其他好处,但这不是你问题的主题。

+0

嗨slanecek感谢您的详细解答,我发现'otto'已被弃用,支持'RxJava' ,而[EventBus](https://github.com/greenrobot/EventBus)会定期更新,所以最好使用'EventBus'?以及当我们从'SplashActivity'派发事件时,如果'MainActivity'尚未创建,MainActivity中的订阅者如何获取数据? – Max

+0

@Anders您可以使用Sticky Events,http://www.andreas-schrade.de/2015/11/28/android-how-to-use-the-greenrobot-eventbus/ – slanecek

相关问题