【问题标题】:Activities stack, singleTask, navigation活动堆栈、singleTask、导航
【发布时间】:2012-09-20 11:37:35
【问题描述】:

我有 3 个活动(A、B、C)。对于使用向上按钮从 B->A 和 C->B 导航,我使用 NavUtils.navigateUpFromSameTask(this); 我想要实现的是导航: A->B->C 当我在 C 中时,我想启动 A 并将一些附加数据传递给 A。挑战是将 B、C 保留在堆栈中,以便 A 的硬件后退按钮返回到 C。

我尝试了默认启动模式,然后尝试了单任务启动模式。 默认启动模式: 问题是,当我从 B->A(带有向上按钮)导航时,重新创建了一个活动。我只想返回堆栈,因为它带有硬件后退按钮。

当我对 A、B、C 使用 singleTask 时,活动不会重新创建,但我无法从 A 回到 C。

有什么解决方法的建议吗? 谢谢

【问题讨论】:

    标签: android android-activity android-actionbar


    【解决方案1】:

    虽然你的问题不是很清楚,但我假设如果你的堆栈当前是

    A->B->C
    

    如果你想从 C 开始 A 并在附加文件中传递一些数据,那么你希望堆栈看起来像这样:

    B->C->A
    

    为此,您只需像这样从C 开始A

    Intent intent = new Intent(this, A.class);
    intent.putExtra("key", "value); // Your extras
    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(intent);
    

    这会将A 的现有实例从堆栈的底部移动到顶部,并在A 的该实例上调用onNewIntent(),并使用包含“附加”的新Intent。当用户按下 BACK 时,这将结束 A 并返回到 C

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-25
      • 2019-07-15
      • 1970-01-01
      • 2019-03-08
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      相关资源
      最近更新 更多