2013-02-05 111 views
0

我有4個活動,我的導航是這樣的:Android的 - 後退按鈕重新啓動活動

第一項活動 - >第二項活動 - >第三個活動 - >第四活動 - >第三個活動

當我按返回現在從'第三活動',它進行到第四個活動。不過,我希望它去第二個活動。因此,我已重寫onBackPressed()在第三活動方法:startActivity(此,SeconActivity.class)

問題:當我首先從第一活動導航 - >第二活動,我使禁用按鈕基於來自onCreate()方法中的第一個活動的一些輸入。所以,當我從第三個活動 - >第二個活動導航時,我想保留這些更改。有任何想法嗎 ?

+0

清單中第四個活動是如何定義的? –

+0

要從Activity4移動到Activity3,你可以在Activity4中調用'finish()'(假設你在activity棧中仍然有Activity1,Activity2和Activity3)(即:你沒有'finish()',那麼當你在Activity3中按下BACK鍵它只是返回到Activity2(不會重新創建它) –

回答

1

通過startActivityForResult開始第4個活動。當您想再次致電第三方活動時,只需通過onActivityResults()返回配置第三方活動所需的結果即可。

第三屆活動僞代碼:

final int FOURTH_RESULTS=101; 

startActivityForResults(Intent fourthActivityIntent, FORTH_RESULTS 

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    switch (requestCode) 
    { 
     case FORTH_RESULTS: 
      //Do stuff here 
      break; 
    } 
} 

4活性僞代碼(請將這個,你用來調用3級)

Intent result = new Intent();    
setResult(Activity.RESULT_OK, result); 

參見the API

+0

問題不在於當我從第4個導航到第3個導航時它是當我從第3個活動按BACK時這正是我想要的: 當我從第三項活動中按回時,我想讓它重新開始第二項活動,而不是重新創建它。 – cynic

相關問題