将两项活动与服务相关联。如果应用程序放在后台,则终止服务

时间:2013-09-11 13:19:12

标签: android android-service

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

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

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

1 个答案:

答案 0 :(得分:0)

我最终使用绑定服务执行此操作。我仍然不知道这是否是做这样的事情的最佳方式,但它具有预期的效果。

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