Android “我怎样才能完成?”;“集团”;活动范围?

Android “我怎样才能完成?”;“集团”;活动范围?,android,android-activity,Android,Android Activity,我在我的Android应用程序中有一个操作,其中包括一些活动。在该操作结束时,我需要关闭所有这些活动,并返回启动该操作的屏幕。下面的图表解释了这应该如何工作。有什么办法可以做到这一点吗 p/S/Fragments在我的情况下不是一个选项有很多方法可以做到这一点。简而言之,它们是: 1。使用startActivityOnResult()方法开始所有活动。如果你需要关闭它们,就抓住它们 2。用清洗电流反向启动活动\u 1: intent.addFlags(Intent.FLAG_ACTIVITY_

我在我的Android应用程序中有一个操作,其中包括一些活动。在该操作结束时,我需要关闭所有这些活动,并返回启动该操作的屏幕。下面的图表解释了这应该如何工作。有什么办法可以做到这一点吗


p/S/Fragments在我的情况下不是一个选项

有很多方法可以做到这一点。简而言之,它们是:
1。使用
startActivityOnResult()
方法开始所有活动。如果你需要关闭它们,就抓住它们
2。用清洗电流反向启动
活动\u 1

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent);
finish(); 


3。位于流程内部的活动。您可以在
AndroidManifest
中为您的活动定义另一个流程(3,4,5)。之后,您需要返回到上一个流程并从后台删除当前流程。

您可以使用
flag=Intent.flag\u ACTIVITY\u CLEAR\u TASK
来完成一组活动。
下面是一个代码示例

startActivity(新意图(SignIn.this,MainActivity.class).设置标志(Intent.FLAG\u ACTIVITY\u CLEAR\u TOP\124; Intent.FLAG\u ACTIVITY\u CLEAR\u TASK));
您可以使用
flag=Intent.flag\u ACTIVITY\u CLEAR\u 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();

您可以使用
startActivityForResult
s链。或者使用碎片。或者至少是任何不是活动链的东西。第一个选项听起来很有趣,它确实能帮上忙。第二个选项现在不可能了,因为我不知道是哪个活动启动了操作。类似于我已经尝试过的第三个选项。我使用FLAG_activity_NEW_TASK运行了我的第一个操作活动,但有时(如果在新任务中运行活动的应用程序位于后台),在我关闭操作任务时,我的上一个任务已经关闭。因此,当用户在操作的最后一个活动上按下OK时,应用程序就会关闭。是的,但我不知道需要返回哪个活动,因为我不知道操作启动了什么活动
 //  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();