2

在我的 android 项目中,我有一个包含流地址列表(音乐)的类

我应该保留该课程,这样我就不必重新填写该列表了吗?

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

在这些和屏幕变化之间(破坏活动),列表将丢失......

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

4

2 回答 2

2

您可以将列表存储在静态单例中,或者存储在扩展Application. 反过来可以从带有getApplication().

如果使用得当,静态单例将与应用程序类以相同的方式运行,除了单例可以从任何地方访问,而应用程序类只能通过上下文访问。

这里有一个相关的问题,关于 Application 和 singleton 之间的区别是什么。

于 2012-10-29T14:17:56.027 回答
1

不,你不需要这样做。

通常,如果您有一个长时间运行的类需要在整个 Activity 生命周期中生存,那么将它放在绑定服务中就可以了。它需要您通过 IPC 传输数据。在这种情况下,应该没关系。由于您本质上是在处理一个String数组,因此您可以将其放入您即将开始的Intent对象中或放入对象中。ActivityBundleIntent

在创建 Activity 时,只需Bundle使用Intent#getExtras()方法打开并重建您的列表。与带有Service.

编辑:

您可以尝试的一件事是覆盖该Application对象。您必须在 中指定新的入口点Manifest,但如果您SingletonApplication类构建并在那里保存引用,只要您的应用程序正在运行,它就应该保持活动状态。但是,当您离开时,它将被销毁。

于 2012-10-29T13:32:02.773 回答