在我的 android 项目中,我有一个包含流地址列表(音乐)的类
我应该保留该课程,这样我就不必重新填写该列表了吗?
可能有许多不同的屏幕(活动),我会将它们推入屏幕或从中拉回。
在这些和屏幕变化之间(破坏活动),列表将丢失......
这个逻辑是否需要服务来保存列表?
在我的 android 项目中,我有一个包含流地址列表(音乐)的类
我应该保留该课程,这样我就不必重新填写该列表了吗?
可能有许多不同的屏幕(活动),我会将它们推入屏幕或从中拉回。
在这些和屏幕变化之间(破坏活动),列表将丢失......
这个逻辑是否需要服务来保存列表?
您可以将列表存储在静态单例中,或者存储在扩展Application
. 反过来可以从带有getApplication()
.
如果使用得当,静态单例将与应用程序类以相同的方式运行,除了单例可以从任何地方访问,而应用程序类只能通过上下文访问。
这里有一个相关的问题,关于 Application 和 singleton 之间的区别是什么。
不,你不需要这样做。
通常,如果您有一个长时间运行的类需要在整个 Activity 生命周期中生存,那么将它放在绑定服务中就可以了。它需要您通过 IPC 传输数据。在这种情况下,应该没关系。由于您本质上是在处理一个String
数组,因此您可以将其放入您即将开始的Intent
对象中或放入对象中。Activity
Bundle
Intent
在创建 Activity 时,只需Bundle
使用Intent#getExtras()
方法打开并重建您的列表。与带有Service
.
编辑:
您可以尝试的一件事是覆盖该Application
对象。您必须在 中指定新的入口点Manifest
,但如果您Singleton
从Application
类构建并在那里保存引用,只要您的应用程序正在运行,它就应该保持活动状态。但是,当您离开时,它将被销毁。