2010-11-25 124 views
8

我有四项活动一个天气应用程序之间的对象。主/发射活动是“隐形”使用...共享活动

机器人:主题=“@安卓风格/ Theme.Translucent.NoTitleBar”`

...并且只是用来做一些检查(无论这是否为新安装,是否有网络连接可用等),然后再发起其他活动之一。其他活动以用户界面为导向 - 两个简单地显示从网站拉出的天气数据,第三个提供位置“选择器”,以便用户可以选择显示天气的区域。

但是,所有四个活动,利用一个WeatherHelper对象基本上从可用SD卡存储检查维护喜好和拉/格式的网页做的一切。

所以,我的问题(S)...什么是有WeatherHelper的一个实例可以由多个活动中使用的最佳途径,其中/如何最好在我的情况下创造的呢?

我一直是OO程序员很多年,但我对Android和设计概念非常陌生 - 过去几个星期我在Android开发者网站上看过很多内容,但是我试图阻止尝试决定这一点。

任何想法感激地收到。

回答

12

我将存储共享的信息在你Application对象。继承这个并在那里添加额外的初始化和数据。您可以从您的活动中使用getApplication()获得您的应用程序,您可以将其转换为专用版本并访问共享数据。

我也将避免发动可能的话在特殊的启动活动,做在你的应用程序的onCreate()重写工作。

+0

谢谢!一个无法“为树木看见木头”的案例 - 我集中了很多活动,我没有看到更大的图景。我同意避免启动活动(我不喜欢这样做) - 应用程序的onCreate()覆盖可能是一种更好的方法。 – Squonk 2010-11-25 01:48:45

+0

另一个完全可以接受的解决方案是使用单例,它可以被懒惰地初始化。 – dhaag23 2012-10-23 20:18:37

1

好了,你的问题已经回答了,但现在看来似乎会更简单实例中具有发射意图ActivityonCreate()WeatherHelper对象,使WeatherHelper静态的。