0

我有一个活动 A,它在单击按钮时启动音乐服务,并且可以选择在单击另一个按钮时启动另一个活动 B。我希望在使用应用程序时在后台播放音乐。当它不被使用时(活动 A 和 B 都不可见)我希望音乐停止。

我已经尝试从 Activity A 上的按钮单击使用启动服务,startService(mMusicIntent)并以类似的方式使用stopService(mMusicIntent). 确实,当我在 A 和 B 之间跳转时,音乐确实会继续播放,但是如果我在 Activity B 中并且我将应用程序置于后台(主页或切换应用程序),则后台音乐服务仍然会播放。我只能使用onDestroy()Activity A 中的方法停止服务。

有没有更好的方法来做到这一点?我不想在任何一个活动和服务之间传递数据(它只是播放音乐),所以我觉得绑定不合适。但我可能是错的。

4

1 回答 1

0

我最终通过绑定服务做到了这一点。我仍然不知道这是否是执行此类操作的最佳方法,但它具有预期的效果。

Activity A 在按钮单击时绑定到 MusicService。在 MusicService 中,我们设置绑定以开始播放音乐。重新单击按钮或停止活动 A 时,活动 A 解除绑定。Activity B 绑定 onCreate() 并在 onStop() 时取消绑定。当然,我可以调整代码以便选择正确的生命周期对,但这适用于我的用例。

于 2013-09-11T14:04:24.360 回答