如何完成流量,流量控制中的活动

时间:2017-12-13 09:34:49

标签: android android-intent android-activity flow

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

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

修改

Activity A出现后,Activity BActivity C应从堆叠中删除。

Activity A BC这是一个工作流程,因此A可以转到BB可以返回{{1}编辑内容,在A中提交后,BA应该消失并显示B作为确认

4 个答案:

答案 0 :(得分:0)

你应该使用

  

如果在传递给Context.startActivity()的Intent中设置,则此标志将为   导致任何与活动相关联的现有任务   在活动开始前清除。也就是活动   成为一个空的任务的新根,和任何旧的任务   活动结束了。这只能与。一起使用   FLAG_ACTIVITY_NEW_TASK。

代码结构

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

答案 1 :(得分:0)

使用此代码

    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

答案 2 :(得分:0)

使用启动模式可以实现此目的。 对清单文件中的活动C使用单一任务

<activity android:name=".ActivityC"
 android:launchMode="singleTask">

答案 3 :(得分:0)

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

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