我有一个非常具体的情况(客户需要)让我遇到导航问题,我得承认我在这个项目之前没有处理Tasks
,我可能会遗漏一些东西明显。
假设我有一个开始B的活动A(主要)。事情是,BroadcastReceiver
触发一个活动B(我知道它不推荐,但它是硬性要求之一)需要使用{ {1}}。
发生的事情是,我在新B处,一旦用户输入代码,将提示活动A,如果按回那里,我将返回原始任务,如果它是后台的,这有A->乙。导致FLAG_ACTIVITY_NEW_TASK
有没有办法摆脱这项任务,或者至少强迫新活动A成为原始堆栈之一,以便用户可以在按下后返回主屏幕?
我已查看this post,但这些建议没有帮助。
最低API级别9。
提前谢谢你,相信我,我尝试了很多launchMode组合并阅读了很多帖子。再次感谢你。
答案 0 :(得分:1)
万一有人得到了这一点。几周前源代码中有一个修改要完成Main活动,因此,当重新使用该活动并清除堆栈的上半部分时,launchMode singleTask
没有任何效果。通过CLEAR_TOP标志。希望任何遇到类似问题的人都会检查代码到那一点,因为使用了导航(util)库。密切关注它。
因此:
这种情况正在发生。 A
在完成任务时启动B
,导致只有B
的堆栈。在BroadcastReceiver扩展类启动A
之后,任何任务堆栈中都没有先前的活动A
。哪个创建task1[B] task2[B]
任务2的B
已启动A
,task2
完成后,它将返回task1
B
,然后重新创建A
按下向上按钮时{{1}}。