我如何知道应用程序何时在后台?

时间:2012-11-18 19:25:46

标签: android

我有一个应用程序,它是一个包含多个选项的菜单,选择的每个选项都会导致新的活动。 我也使用服务在后台播放音乐。无论重点是什么活动,我都希望我的音乐能够持续发挥。

我的问题是:

  • 如果我不覆盖onPause()或onStop(),当我打开另一个活动时,音乐会正常。但是当我按下主页按钮时,音乐仍在播放。
  • 如果我覆盖onPause()或onStop(),当我按下Home按钮时音乐将停止,但是当另一个活动打开时它也会停止。

那我现在该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以覆盖onPause()并使用布尔标志 如果要启动新活动,请将布尔值设置为true。当onPause()被调用时,您将知道它是否不是true,那么您应该停止音乐。

boolean keepPlaying = false;

protected void onPause() { 
    if(!keepPlaying)
        stopService(new Intent(this, MediaPlayerServices.class)); 
    super.onPause();
}