删除活动backstack接受第一个活动

时间:2014-11-19 08:31:44

标签: android android-intent android-activity

假设在Android应用程序中,有4个活动。第一个'A',列出订单。第二个'B'是创建新订单的表单。第三个'C'是对用户放入'B'的确认。而第四个'D'是显示提交订单的加载进度的活动。在正常流程中,用户从A到B到C到D.

我的问题是,我应该怎么做,当它在'D'上,并且它已经完成时,当用户按下时,它直接进入'A'。当用户处于'C'时,用户可以按回去'B'(意味着任何修改都不应改变这一点)。另外,如果'A'不是第一个活动,意味着'E'在'A'之前开始,当用户在'C'并且用户按回时,它应该转到'A'而不是'E' ”。

如果解决方案不涉及片段,我更愿意。不是它不能使用,但假设你不能使用它,你会怎么做?提前谢谢。

2 个答案:

答案 0 :(得分:1)

处理此问题的最佳方法可能是在所有活动中使用startActivityForResult。您可以设置标志来管理活动的“状态”。例如,一旦用户从“C”进入“D”表示“C”应该“完成”,你可以设置一个标志,所以应该“B”

How to manage `startActivityForResult` on Android?

这是处理堆栈而不覆盖“后退”按钮的最佳方法,这也是可能的。

Android - How To Override the "Back" button so it doesn't Finish() my Activity?

通常,当您尝试控制“返回”时,您不希望或期望的用户会发生这种情况,并且他们从不告诉您。他们只是停止使用你的应用程序。

由于您有“E”活动,因此可能会更复杂。但根据您的描述,上述两种方法中的任何一种都适合您。

答案 1 :(得分:0)

这不是答案。但我无法评论,因为我没有足够的代表。

您可以使用:

  • startActivityForResult()
  • LocalBroadcastManager

startActivityForResult()对你来说似乎更好,因为你有类似向导设置的东西。