2012-09-20 196 views
1

我有3個活動(A,B,C)。使用向上按鈕從B-> A和C-> B導航,我使用NavUtils.navigateUpFromSameTask(this); 我想要實現的是導航: A-> B-> C當我在CI中想要啓動A並將一些數據以額外的方式傳遞給A.挑戰是保持B,C堆棧,以便A中的硬件後退按鈕回到C.活動堆棧,singleTask,導航

我試着默認launchMode然後singleTask launchMode。 默認啓動模式: 問題是,當我瀏覽時,例如從B-> A(使用向上按鈕)活動被重新創建。我只想回到棧中,因爲它帶有硬件後退按鈕。

當我用singleTask爲A,B,C的活動不會被重建,但我不能從回C.

任何建議如何解決呢? 感謝

回答

0

雖然你的問題不是很清楚,我假設,如果你的棧是目前

A->B->C 

,你想從C開始A,並通過它的一些數據的演員,你再要堆棧看起來像這樣:

B->C->A 

要做到這一點,你只需要從C這樣開始A

Intent intent = new Intent(this, A.class); 
intent.putExtra("key", "value); // Your extras 
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(intent); 

這會的A現有實例從底部移動到堆棧的頂部,幷包含「額外」的新Intent呼籲onNewIntent()上的A該實例。當用戶按BACK時,這將完成A並返回到C