【发布时间】:2019-05-17 14:58:44
【问题描述】:
我的 Android 应用中有一项操作,其中包括一些活动。在此操作结束时,我需要关闭所有这些活动并返回开始此操作的屏幕。下面是一个解释这应该如何工作的图表。有什么选择吗?
P/S/ Fragments 在我的情况下不是一个选项
【问题讨论】:
-
你可以使用
startActivityForResults的链。或者使用片段。或者至少是任何不是 Activity 链的东西。
我的 Android 应用中有一项操作,其中包括一些活动。在此操作结束时,我需要关闭所有这些活动并返回开始此操作的屏幕。下面是一个解释这应该如何工作的图表。有什么选择吗?
P/S/ Fragments 在我的情况下不是一个选项
【问题讨论】:
startActivityForResults的链。或者使用片段。或者至少是任何不是 Activity 链的东西。
有很多方法可以做到这一点。很快他们是:
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 中删除当前进程。
【讨论】:
您可以使用flag=Intent.FLAG_ACTIVITY_CLEAR_TASK 完成一组活动。
这是代码示例
【讨论】:
您可以使用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();
【讨论】: