我有一个播放音乐的应用程序。我可以远程将音乐添加到设备中。
即使myapplication未启动,我也使用服务来运行它。
我有一个自定义适配器来显示我的活动中的音乐,但是音乐数据在我的服务类中。
如何从服务中获取数据并将其用于我的自定义适配器以显示音乐?
我找到了一些解决方案,比如将我的对象放在派生的Application类中,但是如果我的所有活动都被销毁了,我认为应用程序也被销毁了,不是吗?
由于
答案 0 :(得分:1)
使用建议的解决方案将对象放在派生的Application
类中。
如果您仍然Application
正在运行,则Service
不会被销毁。这就是使用此技术的美妙之处 - 只要您的应用中运行Activity
或Service
,Application
就会存在于内存中。
或者,功能类似的技术是为数据使用显式单例。有关为什么这比使用应用程序更好的长期讨论,请查看此问题的答案:
这些技术的另一面是内存管理。由于Application
或单例始终在内存中,您可能会发现对所有对象使用的内存太多。所以这是你必须要特别注意的事情。
考虑使用对象的弱引用,由数据库或共享首选项支持。阅读一下WeakHashMap
。