2012-04-07 127 views
1

请告诉我任何一个,如何杀死以前的堆栈活动。我的要求是这样的,让我从活动 A ----> B -----> C --- ---> d ----->电子 然后活动堆栈将EDCBA 现在我在Ë如果我所有的工作就完成了,然后我移动到活动 使用如何杀死堆栈活动

startActivity(intent); 

this.finish(); 

这段代码只会杀死E活动,但我想杀C D活动也。 我该怎么做。 谢谢。

回答

6

一种解决方案是呼叫活动[B]与标志FLAG_ACTIVITY_CLEAR_TOP

Intent b = new Intent(this,B.class); 
b.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(b); 
this.finish(); 

这会杀了C D E

+0

将它创建活动B的新实例,或将只是把旧的面前? – 2014-06-09 08:27:25

+0

@AndroidKiller通过http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP – 2014-06-09 09:33:55

2

你必须通过活动情境进入intet这样就可以调用上的活动结束。

还咕想法是通过使用startActivityForResult(Intent, int).

哪里int是正在启动的活动代码开始活动。

稍后,您可以拨打finishActivity(int requestCode),这将终止您提供的代码的活动。您可以在strings.XML中拥有活动代码(编号)。

http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent,INT)

3
Intent intent = new Intent(this, B.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);   
    startActivity(intent);