2013-04-25 72 views
0

只是,如何關閉我的應用程序的特定活動?關閉一個具體的活動android

例如我有活動:

A1> B1> C1

而在C1我可以用新PARAMS再去​​A活性,所以當我將打開一個新B(B2),我要關閉較早的活動:A1,B1,C1。

作爲新的結果:

A2> B2

我在哪裏可以B2之後,回到A2,並從A2完成的應用程序。

+0

您必須在開始新活動後立即在現有活動中調用完成方法。 – ararog 2013-04-25 14:49:55

+0

你正在接近這個問題錯了。查找android'launchMode'。 – Phil 2013-04-25 14:52:39

回答

3

你有兩種方法可以做到這一點:

您可以使用活動的聲明,如single top。或者您可以使用start for result在活動之間傳遞數據。然後在onActivityResult只需致電finish();

+0

是的,我想過,我正在檢查其他解決方案,謝謝 – 2013-04-25 15:02:39

0

這應該爲你工作:

Intent i = new Intent(C.this, A.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
startActivity(i); 

FLAG_ACTIVITY_CLEAR_TOP將清除所有其他Activities從堆棧中。 FLAG_ACTIVITY_CLEAR_TASK

此標誌將導致在活動啓動之前將與活動關聯的任何現有任務清除。

Intent Flags

注意由@Dalmas FLAG_ACTIVITY_CLEAR_TASK陳述僅適用於API> = 11

+0

請注意,「FLAG_ACTIVITY_CLEAR_TASK」僅適用於API> = 11。 – Dalmas 2013-04-25 14:55:10

+0

@Dalmas好點!謝謝,我已編輯我的答案 – codeMagic 2013-04-25 14:58:44

+0

這不工作,Intent.FLAG_ACTIVITY_CLEAR_TOP只關閉A2和我正在開發的API 8,所以我會嘗試與其他方式。不管怎麼說,還是要謝謝你! – 2013-04-25 15:02:10