2012-10-29 60 views
2

在我的Android项目的生命周期,我已经持有流地址(音乐)的列表中选择一个类管理Android应用程序

我应该保持这一类,所以我不会有补充该名单?

可能有很多不同的屏幕(活动),我会将它们推入屏幕或从屏幕拉回。

这些和,列表将会丢失画面切换(活动破坏)之间......

这是否逻辑需要服务来保存列表?

+0

什么不能像目前实施的那样工作? –

+0

如果我把它放到我的主要活动中,我会放松列表。 (数组对象)我应该将该对象放入服务中吗? – frankish

回答

1

不,你不需要这个。

通常情况下,如果您有一个需要在活动生命周期中生存的长时间运行的类,则将其放入绑定的服务中将会有效。它需要你通过IPC传输数据。在这种情况下,它应该没有关系。由于您处理的基本上是String阵列,因此您可以将它放入您即将开始的ActivityIntent对象中,或者放入Bundle的对象中,该对象将进入Intent对象。

在创建活动时,只需使用Intent#getExtras()方法打开Bundle并重新构建您的列表。与具有Service的IPC相比,它不会花费太多时间,而且应该更容易维护。

编辑:

一个可以尝试的东西是重写Application对象。您必须在Manifest中指定新的入口点,但是如果您从Application类构建Singleton并在该处保存引用,则只要您的应用程序正在运行,它就应该保持活动状态。当你离开时它会被摧毁。

+0

使用静态单例类来容纳字符串数组将工作?或者服务或新的活动创建一个新的? (静态对象的范围有所不同?) – frankish

+0

这种情况不太可能发生,但如果Android平板电脑决定销毁服务以释放内存,那么您的运气不佳。最好删除依赖关系而不是创建它们。 – DeeV

+0

等一下。刚刚有一个想法,你可以尝试。查看编辑。 – DeeV

2

您可以将列表存储在静态单例中,也可以存储在扩展Application的类中。这又可以通过getApplication()的活动类访问。

正确使用时,静态singleton将以与应用程序类相同的方式工作,除了singleton可以从任何地方访问以及Application类仅通过Context。

Here有关应用程序和单例之间有什么区别的相关问题。

+0

谢谢你,这也是有价值的信息! – frankish