如何在android中按回按钮后停止finish()方法?
答
另一种选择是,重写你的活动的finish()
@Override
public void finish() {
if(bLetsFinish){
super.finish(); //This will finish the activity and take you back
}else{
//Do whatever it is that you want to do
return;
}
}
但是请注意,这个函数都会被调用的活动要结束时间(),例如旋转手机和活性重建。在这种情况下,您的旧Activity不会完成(),我不确定Activity销毁的行为如何。
答
您可以在您的活动覆盖onBackPressed()
赶“回”新闻发布会。如果您在某些情况下不想完成该活动,请不要通过该方法拨打super.onBackPressed()
。
但是,可以肯定你打电话super.onBackPressed()
如果条件不满足。
答
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(success){
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
你可以用上面的方法或以下的方法做你的任务
public void onBackPressed(){
if(success){
finish();
}
}
答
@Override
public void onBackPressed() {
if (success)
super.onBackPressed();
else // Do what you want to do
}
+0
此代码不能编译。此外,请避免使用仅有代码的答案,而应尝试将解决方案解释为使用代码作为示例。 – 2017-01-05 10:22:19
我第二是....或者您也可以拨打this.finish()内onBackPressed()而不是super.onBackPressed() – drulabs 2012-04-15 07:08:38
@KKD'super.onBackPressed()'在蜂窝前版本上调用'finish()',但在Honeycomb后支持'Fragment'(在支持包中)。最好调用'super'来避免意外行为,除非这是你的意图。 – 2012-04-15 07:21:28
我不知道......谢谢杰森。 – drulabs 2012-04-15 18:50:56