2015-07-01 88 views
-3

在我的應用程序中,我有6個活動,如1-> 2-> 3-> 4-> 5-> 6。在第六項活動中,用戶可以選擇任何活動(我正在啓動意向)。意味着他可以選擇1或2或3或4或5.現在當我按下後退按鈕時,它會再次返回到第6個活動(我不想)。如何殺死任務中的特定活動?

ex: 我這樣執行1-> 2-> 3-> 4-> 5-> 6。現在我在第六次活動。在這裏,我有按鈕,當我按下它時,它啓動了第四項活動。我的代碼是這樣的按鈕點擊。

Intent intent = new Intent(MainScreen.this, UniversitiesScreen.class); 
startActivity(intent); 

所以現在我在第四次活動​​。當我按下按鈕時,它將我帶到第六次活動(我來自),而不是第三次活動(我期待的)。 任何人都可以幫助我處理這種類型的導航。

+1

你在SO上搜索過嗎? – Pankaj

+0

看看http://stackoverflow.com/a/30944426/4185106 – moffeltje

+0

使用finish()當你,移動到以前的活動 – Mano

回答

1

答案很簡單,編輯您onBackPressed方法在每一次活動...... 例如,寫活動第四屆這樣

@override 
    public void onBackPressed(){ 
    Intent in = new Intent(this, ThirdActivity.class); 
    startActivty(in); 
    finish(); 
    } 

請檢查您是否傳遞到意圖的上下文。每個活動都是不同的,所以要傳遞你調用其他活動的活動環境。 如果我的猜測是真的Mainscreen.this是第一個活動的,如果你從第四個活動叫第五活動,給意圖爲

Intent in = new Intent(FourthActivity.this,FifthActivity.class); 
startActivity(in);  
finish(); 

而且你是不是節省了堆棧中的任何數據,並要手動回去......

0

最好的方法是在您的活動中使用NavUtils.navigateUpFromSameTask(this)函數。爲此,您需要爲清單中的每項活動定義父活動,因此,當您處於第四項活動中時,父活動是第三項活動。然後,當您單擊後退或向上導航時,您最終會進入父活動,即從4日至3日。

看看這個 http://developer.android.com/training/implementing-navigation/ancestral.html

看那清單然後向上導航至父任務部分

這也將返回到第3相同的活動狀態幫助從第4次活動開始。