如何在android中按回按钮后停止finish()方法?

时间:2012-04-15 06:51:18

标签: java android

我可以在完成()

中检查一些条件

如果条件成功,继续回到上一个

否则,停止结束,并保持当前的活动?

4 个答案:

答案 0 :(得分:6)

您可以通过覆盖活动中的onBackPressed()来捕捉“返回”新闻事件。如果您有某些不希望完成活动的情况,请不要在该方法中调用super.onBackPressed()

但是,如果不满足条件,请务必致电super.onBackPressed()

答案 1 :(得分:3)

另一个选项是,覆盖您的活动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破坏的行为如何。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

@Override
public void onBackPressed() {
    if (success)
        super.onBackPressed();
    else // Do what you want to do
}