Android 如何放弃另一个任务的活动堆栈
我有一个非常特殊的情况(客户要求)让我在导航方面有问题,我必须承认我在这个项目之前没有处理过Android 如何放弃另一个任务的活动堆栈,android,android-intent,android-activity,back-stack,android-navigation,Android,Android Intent,Android Activity,Back Stack,Android Navigation,我有一个非常特殊的情况(客户要求)让我在导航方面有问题,我必须承认我在这个项目之前没有处理过任务,我可能遗漏了一些明显的东西 假设我的活动A(主)启动了B。问题是,BroadcastReceiver触发了一个活动B(我知道不建议这样做,但这是一个硬要求),它需要使用标记活动\新任务 发生的事情是,我在新的B,一旦用户输入代码,活动a将被提示,如果a按回到那里,我将返回到原始任务,如果它是后台的,它有a->B。导致类似于a->B->(后台/主页按钮)。BroadcastReceiver->B->A
任务
,我可能遗漏了一些明显的东西
假设我的活动A(主)启动了B。问题是,BroadcastReceiver
触发了一个活动B(我知道不建议这样做,但这是一个硬要求),它需要使用标记活动\新任务
发生的事情是,我在新的B,一旦用户输入代码,活动a将被提示,如果a按回到那里,我将返回到原始任务,如果它是后台的,它有a->B。导致类似于a->B->(后台/主页按钮)。BroadcastReceiver->B->A->(返回A->B的旧任务)
有没有办法摆脱该任务,或者至少强制新的活动a成为原始堆栈中的一个,这样用户可以在按下back后进入主屏幕
我查过了,但这些建议没有帮助
最低API级别9
提前谢谢你,相信我,我已经尝试了许多launchMode组合,并阅读了许多帖子。再次感谢您。以防万一有人说到这一点。几周前,源代码中有一个修改,主要活动要完成,因此,在重用该活动并通过CLEAR_TOP flag清除堆栈上部时,launchMode
singleTask
没有起任何作用。希望任何遇到类似问题的人都检查代码,直到使用导航(util)库为止。注意这一点
因此:
这种情况正在发生<代码>A在自己完成时启动了B
,导致了一堆B
。BroadcastReceiver扩展类启动A
后,在任何任务堆栈中都没有以前的活动A
。它创建了任务1[B]task2[Btask2的B
启动了A
,在task2
完成后,它将返回到带有B
的task1
,当按下Up按钮时,它又会重新创建A