2012-09-20 42 views
1

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

我试着默认launchMode然后singleTask launchMode。 默认启动模式: 问题是,当我浏览时,例如从B-> A(使用向上按钮)活动被重新创建。我只想回到栈中,因为它带有硬件后退按钮。

当我用singleTask为A,B,C的活动不会被重建,但我不能从回C.

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

回答

0

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

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现有实例从底部移动到堆栈的顶部,并包含“额外”的新Intent呼吁onNewIntent()上的A该实例。当用户按BACK时,这将完成A并返回到C