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();
}
}