【问题标题】:How to discard stack of activities of another task如何丢弃另一个任务的活动堆栈
【发布时间】:2013-09-15 20:14:42
【问题描述】:

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

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

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

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

我检查了this post,但这些建议没有帮助。

最低 API 级别 9。

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

【问题讨论】:

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


    【解决方案1】:

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

    因此:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2018-12-01
      • 1970-01-01
      • 2014-01-30
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多