检测应用程序关闭/最小化

时间:2013-08-22 02:56:24

标签: android android-activity

首先 - 抱歉我的英语。

我刚创建了Android应用。它包含几个活动,在此应用程序的后台播放音乐。当用户以某种方式从应用程序中退出时(通过单击“后退”按钮,主页按钮或其他方式),我需要停止播放音乐。问题是处理这个时刻。我不知道怎么做。

请帮帮我, CD

4 个答案:

答案 0 :(得分:1)

您可以使用以下方法检查您的应用程序何时处于后台:

1

   public boolean isApplicationSentToBackground(final Context context) {
    try {
        ActivityManager am = (ActivityManager) context
                .getSystemService(Context.ACTIVITY_SERVICE);
        List<RunningTaskInfo> tasks = am.getRunningTasks(1);
        if (!tasks.isEmpty()) {
            ComponentName topActivity = tasks.get(0).topActivity;
            if (!topActivity.getPackageName().equals(
                    context.getPackageName())) {
                     return true;
            }
        }
    } catch (SecurityException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return false;
}

然后在你的onPause中你可以调用这个方法,并且可以停止声音。 在onRestart()中你可以开始发声。

2.您可以覆盖OnBackPressed()方法,可以在此方法中停止声音

3.另外,您可以使用keyEvent

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub

    if (keyCode == KeyEvent.KEYCODE_BACK) {
             //Your Code here
             // You can stop the sound here also
    }
    return super.onKeyDown(keyCode, event);
}

答案 1 :(得分:0)

你应该停止播放音乐onPause()。开始播放音乐onResume()。但请遵守Google提供的指导原则:http://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html

答案 2 :(得分:0)

根据我的理解,你想做this Question

之类的事情

如果是,请使用以下代码。级别是媒体播放器的对象。

@Override
public void onBackPressed() {
// TODO Auto-generated method stub
  super.onBackPressed();

  if (level != null) {
    if (level.isPlaying()) {

        level.stop();

    }
    level.release();
    level = null;
  }
}

@Override
protected void onPause() {
 // TODO Auto-generated method stub
  super.onPause();

  if (level != null) {
    if (level.isPlaying()) {

        level.pause();

    }
  }
 }

答案 3 :(得分:0)

Android无法检测应用何时进入后台。当活动进入后台时,只有回调。

示例解决方案可以是使用服务和每个Activity的onPause和onResume方法播放音乐,通知服务暂停/恢复音乐。