【发布时间】:2021-05-26 05:17:00
【问题描述】:
我知道如何将片段内的函数调用到活动中,
(activity as MainActivity).bbtn()
但是我想知道如何/可以从另一个活动中调用此函数?理想情况下,我想分开每个活动的作用,并且宁愿只处理媒体播放器来运行这些命令的活动。目前看来我需要将很多核心逻辑放入 MainActivity 中,这可能是很多未使用的代码。
【问题讨论】:
-
不要认为这值得 -1 票,因为问题本身还不错。但是,不要这样做,它会导致内存泄漏和 MainActivity 中大量不属于那里的代码。
-
@Joozd 感谢您的反馈,我试图不将所有代码放在 MainActivity 中,这就是为什么我试图将音乐播放器与 Main Activity 分开。问题与 Apple Music 应用程序的问题相同,那就是它们在我们的应用程序中有很多导航,并且音乐播放器需要能够从大多数活动中访问。
-
@Joozd 我想出的解决方案是将音乐播放器放在一个片段中并 ping 一个全局类函数,该函数告诉 track = track 是否继续播放,但如果 track url 已更改片段播放器卸载播放器并加载新项目,然后播放它。
-
我会为此使用单独的播放器对象,而不需要静态保存在您的应用程序中(例如存储库中)的 UI。在对不相关问题的评论中需要解释很多:)
-
@Joozd 是否在那里,您可以链接到展示或存储库示例的问题,因为我似乎无法让 ExoPlayer 在没有“上下文”的独立类中工作(onCreate)