奇葩,一次项目中,出现一个奇葩的事情,按返回键,android给我结束了两个activity,出现原因如下:
TestActivity 继承 自己的一个BaseActivity ,其中重写了下面方法:
@Override
public void startActivity(Intent intent) {
super.startActivity(intent);
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
}
// Press the back button in mobile phone
@Override
public void onBackPressed() {
finish();
}
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);
}
当我这个TestActivity调转到一个二维码界面
Intent intent = new Intent(BindingActivity.this, CaptureActivity.class);
startActivityForResult(intent, Global.SCANNIN_GREQUEST_CODE);
跳转成功后,在这个扫描二维码界面按返回键,发现TestActivity页一并退出了。
当我把onBackPressed方法注释掉后又正常了,不在结束两个activity了,据此,本人的猜测是:
startActivityForRsult是吧一个CaptureActivity进入TestActivty里运行,在CaptureActivity里按返回键,就传给了TestActivty,所以结束了两个activity
上文只是鄙人只是猜测,原理有空在深入理解。