在我的应用程序中,Activity1启动Activity2与“startActivityForResult()”。完成()在一个活动关闭应用程序,然后简要显示以前的应用程序
当活性2完成后,下面的代码被称为:
Activity2.java
private void finishActivity(final boolean accepted)
{
Intent returnIntent = new Intent();
setResult(accepted ? RESULT_OK : RESULT_CANCELED, returnIntent);
finish();
}
活性1收到这个回调,如果结果不RESULT_OK,它也完成。
Activity1.java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == Globals.REQUEST_CODE_TOS)
{
if (resultCode != RESULT_OK)
finish();
}
}
活动1完成的应用程序关闭,如预期后。
的问题 -
然而,我的应用程序关闭后,而不是去到主屏幕,在栈简要以前的应用程序启动前,则也关闭!然后我进入主屏幕。
在Android bug跟踪系统,我看到的是按后退按钮时的情况列出了类似的错误,我相信这是与调用完成():
https://code.google.com/p/android/issues/detail?id=71067
我在运行4.4.4的Nexus 5上看到这一点。
这只是一个错误?还是有任何行为的解决方法?
编辑 -
为了澄清我想要的行为:
在谷歌地图,如果你拒绝TOS弹出,应用程序关闭,并直接进入主屏幕。有一些以前打开的应用程序没有尴尬的闪光。
可能是一个系统错误... – StoneBird 2014-11-06 17:26:24
“堆栈上的前一个应用程序暂时启动,然后关闭!”什么是'以前的申请'?你的意思是Activity2? – 2014-11-06 17:32:32
@MarcinS。不,我的意思是以前的应用程序 - 例如,在我的顶级活动中调用finish()后,Play Store会短暂弹出并弹出,最后将我带到主屏幕。 – Alchete 2014-11-06 17:38:19