如何丢弃另一个任务的堆栈活动

时间:2013-09-11 17:16:16

标签: android android-intent android-activity back-stack android-navigation

我有一个非常具体的情况(客户需要)让我遇到导航问题,我得承认我在这个项目之前没有处理Tasks,我可能会遗漏一些东西明显。

假设我有一个开始B的活动A(主要)。事情是,BroadcastReceiver触发一个活动B(我知道它不推荐,但它是硬性要求之一)需要使用{ {1}}。

发生的事情是,我在新B处,一旦用户输入代码,将提示活动A,如果按回那里,我将返回原始任务,如果它是后台的,这有A->乙。导致FLAG_ACTIVITY_NEW_TASK

之类的东西

有没有办法摆脱这项任务,或者至少强迫新活动A成为原始堆栈之一,以便用户可以在按下后返回主屏幕?

我已查看this post,但这些建议没有帮助。

最低API级别9。

提前谢谢你,相信我,我尝试了很多launchMode组合并阅读了很多帖子。再次感谢你。

1 个答案:

答案 0 :(得分:1)

万一有人得到了这一点。几周前源代码中有一个修改要完成Main活动,因此,当重新使用该活动并清除堆栈的上半部分时,launchMode singleTask没有任何效果。通过CLEAR_TOP标志。希望任何遇到类似问题的人都会检查代码到那一点,因为使用了导航(util)库。密切关注它。

因此:

这种情况正在发生。 A在完成任务时启动B,导致只有B的堆栈。在BroadcastReceiver扩展类启动A之后,任何任务堆栈中都没有先前的活动A。哪个创建task1[B] task2[B]任务2的B已启动Atask2完成后,它将返回task1 B,然后重新创建A按下向上按钮时{{1}}。