Android按下Home键时停止背景音乐

时间:2013-01-02 14:10:45

标签: android android-activity media-player

我正在开发一个有多项活动的应用。用户可以导航到任何活动。我从第一个主要活动开始播放背景音乐,并在整个应用程序中继续播放。现在我希望每当用户按下HOME键时,媒体播放器应暂停播放,当用户返回应用程序时,它会再次开始播放。首先,我将媒体播放器设置为静态,并在onPause()中暂停音乐并在onResume()中播放,但它在活动之间切换时会产生一个混蛋。我希望你明白我的观点。任何想法如何在按下HOME键时暂停播放并在用户返回时再次播放?

2 个答案:

答案 0 :(得分:2)

看看Activity.onUserLeaveHint() http://developer.android.com/reference/android/app/Activity.html#onUserLeaveHint()

  

当活动即将到来时,被称为活动生命周期的一部分   作为用户选择的结果进入后台。例如,何时   用户按下Home键,将调用onUserLeaveHint(),但是   当来电通话导致通话活动时   自动带到前台,onUserLeaveHint()不会   呼吁活动被打断。在调用它的情况下,   在活动的onPause()回调之前调用此方法。

答案 1 :(得分:0)

我遇到了同样的问题,并以一种丑陋的方式解决了这个问题:有一个全局静态播放器。在一个活动的onPause中,它调用播放器停止(但实际上并没有停止),并在onResume调用中启动。 在播放器onStart中,我将音乐标记为播放。在onStop中,我将音乐标记为已停止,但实际上并未将其停止。在停止被叫之后我醒了1秒,如果在最后一秒没有“startPlaying”,我就停止了音乐。

我希望有更好的方法。