管理Android应用程序的生命周期

时间:2012-10-29 13:23:05

标签: android service android-intent

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

我应该保留该课程,以便我不必重新填写该列表吗?

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

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

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

2 个答案:

答案 0 :(得分:2)

您可以将列表存储在静态单例中,也可以存储在扩展Application的类中。反过来可以使用getApplication()从活动类访问。

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

Here一个关于应用程序和单例之间区别的相关问题。

答案 1 :(得分:1)

不,你不需要这样做。

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

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

编辑:

您可以尝试的一件事是覆盖Service对象。您必须在Application中指定新的入口点,但如果您从Manifest类构建Singleton并在那里保留引用,只要您的应用是运行。你离开时它会被摧毁。