我在Android应用中进行了一项操作,其中包含一些活动。在此操作结束时,我需要关闭所有这些活动并返回到开始此操作的屏幕。下图说明了其工作原理。有什么选择吗?
在我的情况下,
P / S /碎片不是一个选择
答案 0 :(得分:2)
有很多方法可以做到这一点。很快,它们是:
1。使用startActivityOnResult()
方法开始所有活动。赶上是否需要关闭它们
2。从Activity_1
开始清理当前的堆栈:
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
3。活动位于流程内部。您可以在AndroidManifest
中为您的活动定义另一个过程(3,4,5)。之后,您需要返回到先前的过程并从backStack中删除当前过程。
答案 1 :(得分:1)
您可以使用flag=Intent.FLAG_ACTIVITY_CLEAR_TASK
完成活动组。
这是代码示例
startActivity(new Intent(SignIn.this, MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK));
答案 2 :(得分:1)
您可以使用flag=Intent.FLAG_ACTIVITY_CLEAR_TASK
清除所有先前的活动。该标志用于清除所有先前的活动。
尝试此代码
// go to login activity
Intent intent =newIntent(AddNewCardActivity.this,HomeNavigationActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();