如何使用on back press返回上一个Activity?

时间:2014-02-25 05:07:09

标签: android back-button

我有一项名为MainActSubAct的活动。 MainActSubAct的父级。

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

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

          tick.release();
      }
 }

使用该代码,音乐会按照我的预期停止。但问题是我无法从subAct返回MainAct ...

我知道这是微不足道的,但是你能告诉我正确的方法吗?

5 个答案:

答案 0 :(得分:8)

只需退回super.onBackPressed()电话

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

          tick.release();
      }

     super.onBackPressed();
 }

super.onBackPressed()因为如果我们查看Activity.java(Android 2.2)

public void onBackPressed() {
        finish();
}

答案 1 :(得分:4)

只需在onBackPressed()方法中调用以下方法即可关闭您的活动...

finish();

如下......

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

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

您也可以通过在super.onBackPressed()内调用onBackPressed()来执行此操作,以便保持onBackPressed()方法的默认行为...

@Override 
public void onBackPressed(){

    super.onBackPressed()

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

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

调用finish()这将从后向堆栈弹出当前活动,后堆栈中的前一个Activity将成为焦点。

另请查看活动生命周期并在onStop()onDestroy()停止播放音乐。

点击后退按钮将拨打finish()。无需覆盖onBackPressed()。只需正确处理生命周期方法。

答案 4 :(得分:2)

只需使用

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

          tick.release();
      }

     super.onBackPressed();
 }

你需要super.onBackPressed();,因为当你调用超级onBackPressed它正在做什么时,它正在调用finish();

或者你可以写

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

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