4

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

4

2 回答 2

2

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

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

于 2013-01-03T08:27:42.617 回答
0

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

我希望有更好的方法。

于 2013-01-03T09:19:41.803 回答