如何将 MediaPlayer 服务绑定到多个活动?

How to bind MediaPlayer Service to multiple activities?

我正在创建一个音乐播放器应用程序。我创建了一个 MediaPlayerService class,并且在 MainActivity 中运行良好。但我不知道如何在不将其设为 null 的情况下传递该服务并将其传递给另一个 activity,因为我也想从另一个 activity 控制它。如果我试图从主要 activity class 获取它,那么我会得到 NullPointerException.

提前致谢

没有代码我可以建议一个简单的解决方案:单例模式。 在 Kotlin 中你可以这样定义一个单例:

object MediaPlayerService {
  fun play(...) {...}
}

然后使用它:

MediaPlayerService.play(...)

这样您将只有一个对象实例。创建实例后,您可以使用 Kotlin Flow 进行发布和订阅。 here 您可以阅读有关 Kotlin Flows 的更多信息。