2013-08-05 37 views
0

讓我們說有三個活動活動C如何在android中返回活動A?

A-> B-> C^

如果我在C返回到B,我所要做的僅僅是:

在C:

  onBackPressed(); 

,在b

protected void onSaveInstanceState(Bundle outState) { 
..... 
} 

if (savedInstanceState != null) { 
..... 
} 

上面的代碼將處理從C到B的情況。但是,如果C到A,我該怎麼辦?另外,如果我希望A到C之間的所有活動如何處理,當C到A時都將被刪除?由於

回答

2

此外,如何處理,如果我想A和C之間的所有活動都destoryed當C到A?

使用此Intent Flag

Intent i = new Intent(ActivityC.this, ActivityA.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 

但是,如果C到A,我應該怎麼辦呢?

此標誌將保留所有Activities中的堆棧,但帶來的正面

Intent i = new Intent(ActivityC.this, ActivityA.class); 
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(i); 

在這兩種情況下,你會想打電話startActivitiy()後打電話到基於C finish()如果你想刪除它。

你可以找到所有Intent FlagsHere in the Docs

+0

如果你不叫'完成()'上的一個,那麼它應該不會被破壞,所以你應該確定 – codeMagic

+0

感謝您的幫助。你介意如何跟蹤/記錄活動堆棧嗎? (我正在使用logcat)例如。現在棧中有哪些活動是隊列?謝謝 – user782104

+0

我發現,當我使用從A到B的意圖時,無論我使用finish()還是不使用,它都會使活動A失效。它是默認的Android行爲嗎? (從一個活動到另一個活動,前面的活動已被刪除。) – user782104

相關問題