我可以在完成()
中检查一些条件如果条件成功,继续回到上一个
否则,停止结束,并保持当前的活动?
答案 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
}