0

我有一个非常特殊的情况(客户要求),我的导航有问题,我必须承认我Tasks在这个项目之前没有处理过,我可能会遗漏一些明显的东西。

假设我有一个启动 B 的活动 A(主要)。问题是,aBroadcastReceiver触发了一个需要使用的活动 B(我知道不推荐,但这是硬性要求之一)FLAG_ACTIVITY_NEW_TASK

发生的情况是,我在新的 B 处,一旦用户输入代码,将提示活动 A,如果按回那里,我将返回到原来的任务,如果它是后台的,它有 A-> B. 导致类似的事情A->B->(background/home button). BroadcastReceiver->B->A->(back to old task of A->B)

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

我已经检查了这篇文章,但这些建议没有帮助。

最低 API 级别 9。

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

4

1 回答 1

1

以防万一有人走到这一步。几周前对源代码进行了修改,使 Main 活动完成,因此,在singleTask重用该活动并通过 CLEAR_TOP 标志清除堆栈的上部时,launchMode 没有任何效果。希望自从使用了导航(util)库以来遇到类似问题的任何人都会检查代码。密切关注这一点。

因此:

这正在发生。A开始B同时完成自己,导致一堆 just B。在广播接收器扩展类启动后,任何任务堆栈中A都没有先前的活动A。创建task1[B] task2[B]任务 2 的B开始A和完成后,task2它会回到哪一个,当按下向上按钮时又会重新创建。task1BA

于 2013-09-13T14:54:13.623 回答