如何在流程中完成Activity,流程控制

How to finish Activity in flow, Flow Control

现在我有 HomeActivity -> Activity A -> Activity B -> Activity C

完成 Activity C 后,我希望看到 HomeActivity。我如何使用 Intent Flags 或任何其他建议来处理此流程?

编辑

但是当 Activity C 出现时,Activity AActivity B 应该从堆栈中移除。

Activity A BC 这是一个工作流程,所以 A 可以转到 B 并且 B 可以返回 A 编辑一些东西,在我提交 B 之后 AB 应该消失并显示 C 作为确认

你应该使用

If set in an Intent passed to Context.startActivity(), this flag will cause any existing task that would be associated with the activity to be cleared before the activity is started. That is, the activity becomes the new root of an otherwise empty task, and any old activities are finished. This can only be used in conjunction with FLAG_ACTIVITY_NEW_TASK.

代码结构

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
    finish();

使用此代码

    Intent intent = new Intent(ActivityC.this, HomeActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
    finish(); // call this to finish the current activity

使用启动模式,您可以实现这一点。 在清单文件

中为 Activity C 使用单一任务
<activity android:name=".ActivityC"
 android:launchMode="singleTask">

你应该在开始下一个之前杀死activity。

 Intent intent = new Intent(ActivityC.this, HomeActivity.class);
 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
 startActivity(intent);
 finish();