活动堆栈,singleTask,导航

时间:2012-09-20 11:37:35

标签: android android-activity android-actionbar

我有3项活动(A,B,C)。对于使用向上按钮从B-> A和C-> B导航,我使用NavUtils.navigateUpFromSameTask(this); 我想要实现的是导航: A-> B-> C当我在CI时想要启动A并将附加内容中的一些数据传递给A. Challenge是将B,C保持在堆栈中,因此来自A的硬件后退按钮将返回到C.

我尝试了默认的launchMode然后是singleTask launchMode。 默认的launchMode: 问题是,当我从B-> A(使用向上按钮)导航时,重新创建活动。我只想回到堆栈中,因为它是硬件后退按钮。

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

有任何建议如何解决? 感谢

1 个答案:

答案 0 :(得分:0)

虽然你的问题不是很明确,但我假设你的筹码目前是

A->B->C

并且您希望从A启动C并在附加内容中传递一些数据,然后您希望堆栈看起来像这样:

B->C->A

要执行此操作,您只需从A开始C,如下所示:

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

这会将A的现有实例从堆栈的底部移到顶部,并在onNewIntent()的实例上调用A,其中包含新的Intent "额外&#34 ;.当用户按下BACK时,这将完成A并返回C

相关问题