Java Android活动未在按下后退按钮后结束

Java Android活动未在按下后退按钮后结束,java,android,android-activity,Java,Android,Android Activity,我已将以下代码添加到我拥有的类中: @Override public void onBackPressed() { // TODO Auto-generated method stub super.onBackPressed(); /* AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setTitle("test"); dialog.setMessage("tes

我已将以下代码添加到我拥有的类中:

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
    /*
    AlertDialog.Builder dialog = new AlertDialog.Builder(this);
    dialog.setTitle("test");
    dialog.setMessage("test 123");
    dialog.setNeutralButton("OK", null);
    dialog.create().show();
    */    
    finish();
}
我知道正在调用该方法,因为当我按下后退按钮时,会显示警报对话框。但是,当我按back键时,MediaPlayer会继续播放,这会将我带到上一屏幕

为什么会这样?不应该停止MediaPlayer吗

finish();
完成你的活动


您应该
stop()
活动
onPause()
方法中的媒体播放器(并在
onDestroy()
中释放它)

好,这是因为
MediaPlayer
后台服务中播放音乐,所以要停止音乐,您必须添加以下内容:

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
    if(mediaplayer.isPlaying())
          mediaplayer.stop();
    finish();
}

其中
mediaplayer
mediaplayer
类的实例。

检查您的
mediaplayer
是否在您的
onBackPressed()
事件中播放

尝试如下:

   @Override
 public void onBackPressed() {
    if( mediaPlayer.isPlaying() ) {
      mediaPlayer.stop();
    }
    super.onBackPressed();
 }
试试这个:

public void onDestroy()
{
    super.onDestroy();
    activities.remove(this);
}

public static void finishAll()
{
    for(Activity activity:activities)
       activity.finish();
}
或者尝试在onPause()方法中添加finish方法,这可能也会起作用


希望这能有所帮助

通常音乐是通过后台服务播放的,不会受到结束活动的影响。MediaPlayer不是活动的一部分<代码>完成()