我可以检查finish()中的一些条件吗
如果条件成功,则继续返回上一个
否则,停止完成,并保持当前活动?
您可以通过覆盖onBackPressed()
您的活动来捕捉“返回”新闻事件。如果您有一些不想完成活动的情况,请不要调用super.onBackPressed()
该方法。
super.onBackPressed()
但是,如果不满足该条件,请确保您确实打电话。
另一种选择是,覆盖您的活动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。在这种情况下,您的旧 Activity 将无法完成(),我不确定 Activity 销毁的行为将如何。
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
}