首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >android- -当应用程序在后台时,如何停止音乐?

android- -当应用程序在后台时,如何停止音乐?
EN

Stack Overflow用户
提问于 2015-09-10 17:24:52
回答 2查看 2.7K关注 0票数 1

我正在开发一个有四个活动的应用程序。当应用程序打开时,我正在播放一个背景音乐,应该继续播放所有的活动。但是当应用程序转到后台时,音乐应该暂停,当应用程序恢复时,音乐应该再次继续。

请提出实现这一目标的最佳方法。

谢谢,阿南德。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-17 09:49:07

阿南德,你需要停止你的音乐,当活动成为背景。

代码语言:javascript
运行
复制
@Override
protected void onPause() {
super.onPause();
  //stop or pause your music here.
}

当活动恢复时,你需要播放你的音乐。

代码语言:javascript
运行
复制
@Override
protected void onResume() {
    super.onResume();
   // play your music here.
}
票数 4
EN

Stack Overflow用户

发布于 2015-09-10 18:43:08

这取决于你是如何演奏音乐的。答案几乎肯定是使用生命周期方法。对于该活动,我认为最好的重写方法是onResume和onPause。当活动出现在前台并分别隐藏时,将调用这些方法。服务有自己的生命周期,但其行为方式不同。

编辑:只需仔细阅读问题即可。要在多个活动之间做到这一点,音乐应该通过绑定服务播放。通过选择服务绑定和未绑定的位置,它将在活动转换之间保持活跃。我认为,当创建新活动时,在暂停之前调用onResume。因此,您将服务绑定到onResume中的新活动,并将其从onPause中的旧活动中解除绑定。当activitys关闭时,调用相同的方法,但调用相反的活动。

编辑2:您还可以将活动绑定到onCreate和onDestroy中的服务。这将导致服务持久化,直到操作系统删除所有活动或应用程序关闭为止。这意味着您还需要服务上的播放和暂停方法,以及确保只有正确的活动才能调用它们的机制。当您调用playMusic函数时,您可以提供一个对象作为令牌。当您调用“暂停”或“停止”时,再次提供该令牌。其结果将是,只有最近调用play的活动才能停止音乐,而所有活动在绑定到服务或调用onResume时调用play。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32508149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档