我有一项名为MainAct
和SubAct
的活动。 MainAct
是SubAct
的父级。
在SubAct
,我正在播放音乐背景。为了在按下后退按钮时停止音乐,我实现了以下代码:
@Override
public void onBackPressed(){
if (tick != null){
if(tick.isPlaying())
tick.stop();
tick.release();
}
}
使用该代码,音乐会按照我的预期停止。但问题是我无法从subAct
返回MainAct
...
我知道这是微不足道的,但是你能告诉我正确的方法吗?
答案 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();
}
}