【问题标题】:Handling (many) Back stacks处理(许多)后堆栈
【发布时间】:2019-03-02 23:02:20
【问题描述】:

我有一个应用程序,它具有 3 个步骤的特定任务流程,它们是 3 个不同的活动,当流程完成时,有一个活动会向您显示成功的消息并让您在社交网络上分享,复制它,保存它,等等。在成功的Activity之后,App应该返回到Main Activity。

首先,我尝试在开始下一个步骤时完成每个步骤活动,但是如果用户需要,应该返回到之前的步骤,所以我放弃了它。

现在,我将成功活动称为 NEW_TASK 和 CLEAR_TOP,当 Activity 调用 OnBackPressed() 启动 MainActivity 时,这当然不是正确的方法,并且 Activity 在其他启动之前关闭,这使得它感觉有问题。

如何处理 BackStack 以使 step 活动可以前后移动,但是当显示成功 Activity 时,一直回到 Main Activity。

这应该是活动流程:

【问题讨论】:

  • 在您的成功活动中简单地调用finshAffinity() 并清除顶部标志。

标签: android android-activity back-stack


【解决方案1】:

首先调用主要活动的意图,然后从成功活动中调用finishAffinity()。 喜欢

Intent i=new Intent(SuccessActivity.this,MainActivity.class);
startActivity(i);
finishAffinity();

【讨论】:

    【解决方案2】:

    在尝试了很多方法之后,MainActivity 的新开始是我不想要的,所以我必须使用 Fragments,而将 Activity 1、2、3 和 Success 替换为只有一个 Activity 和 4 个 Fragment并且当用户完成应用程序完成活动并返回到 MainActivity。

    【讨论】:

      猜你喜欢
      • 2017-12-25
      • 1970-01-01
      • 2012-08-06
      • 2012-11-26
      • 2013-01-18
      • 1970-01-01
      • 2016-05-06
      • 2019-11-27
      • 2010-12-19
      相关资源
      最近更新 更多