2012-04-07 107 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);