Android 如何在按下on back键的情况下返回到上一个活动?

Android 如何在按下on back键的情况下返回到上一个活动?,android,back-button,Android,Back Button,我有一个名为MainAct和SubAct的活动MainAct是SubAct的父级 在子部分中,我正在播放音乐背景。为了在按下后退按钮时停止音乐,我实现了以下代码: @Override public void onBackPressed(){ if (tick != null){ if(tick.isPlaying()) tick.stop(); tick.release(); } } 有了

我有一个名为
MainAct
SubAct
的活动
MainAct
SubAct
的父级

子部分
中,我正在播放音乐背景。为了在按下后退按钮时停止音乐,我实现了以下代码:

@Override 
    public void onBackPressed(){
      if (tick != null){
          if(tick.isPlaying())
              tick.stop();

          tick.release();
      }
 }
有了这个密码,音乐就如我预料的那样停止了。但问题是我不能从
subAct
返回到
MainAct


我知道这很简单,但是你能告诉我正确的方法吗?

只要在
onBackPressed()方法中调用以下方法,这将关闭你的活动

finish();
如下

@Override 
public void onBackPressed(){
    if (tick != null){
        if(tick.isPlaying())
            tick.stop();

        tick.release();
        finish();
    }
}
您也可以通过在
onBackPressed()
中调用
super.onBackPressed()
来实现这一点,这样它将保持
onBackPressed()
方法的默认行为

@Override 
public void onBackPressed(){

    super.onBackPressed()

    if (tick != null){
        if(tick.isPlaying())
            tick.stop();

        tick.release();
        finish();
    }
}
调用
finish()

同时查看活动生命周期,并在
onStop()
onestroy()
中停止音乐


单击“上一步”按钮将调用
finish()
。无需重写
onBackPressed()
。只需正确处理生命周期方法。

只需返回您的
super.onBackPressed()
调用

@Override 
public void onBackPressed() {
      if (tick != null){
          if(tick.isPlaying())
              tick.stop();

          tick.release();
      }

     super.onBackPressed();
 }
super.onBackPressed()
因为如果我们查看(Android 2.2)

调用finish()方法结束当前活动。

只需使用

@Override 
public void onBackPressed() {
      if (tick != null){
          if(tick.isPlaying())
              tick.stop();

          tick.release();
      }

     super.onBackPressed();
 }
您需要
super.onBackPressed()因为当您在backpressed上调用super类时,它正在调用
finish()

或者直接你可以写

@Override 
public void onBackPressed(){
    if (tick != null){
        if(tick.isPlaying())
            tick.stop();

        tick.release();
        finish();
    }
}

给我看看你的意图代码?删除
finish()当您打算解释为什么要将super.onBackPressed()??它起作用了,但我需要一个explanation@studentknight如果这已经解决了你的问题,那么请接受它作为答案
@Override 
public void onBackPressed(){
    if (tick != null){
        if(tick.isPlaying())
            tick.stop();

        tick.release();
        finish();
    }
}