2012-04-15 172 views
6

以下是问题: 假设活动堆栈由A-> B-> C组成。android插入活动堆栈

如果用户按照顺序例如:开始A - > B - > C,按回按钮将导致C-> B-> A。 但是,如果用户直接输入活动C(例如:通过通知),按回按钮将导致应用程序关闭,而不是进入B-> A。

如何插入到活动堆栈成为A-> B-> C,这样当用户位于C压回,它总是会回到B.

感谢

回答

1

刚刚超越控制在activityc中的onBackPressed()方法和startactivity B以及在活动b中的startactivity a。

在activtyÇ

有这些代码::

public void onBackPressed(){ 
startActivity(new Intent(this,ActivityB.class)); 
finish(); 
} 

和在活动b具有这些代码::

public void onBackPressed(){ 
startActivity(new Intent(this,ActivityA.class)); 
finish(); 
} 

和在活性的有这些代码::

public void onBackPressed(){ 
finish(); 
} 
+0

这是否打破了android活动堆栈顺序?它应该完成当前活动并返回到之前的状态,而不是开始另一项新活动。 – 2012-04-16 11:24:02

+0

我认为你应该手动开始活动。 – 2012-04-16 16:48:22

+0

这是一个很好的解决方案..它更好地使用片段而不是活动来获得更好的性能。 – Sripathi 2013-11-19 16:16:41