2012-07-14 35 views
3

假設我的活動主頁上有一個按鈕。按返回按鈕完成一系列活動

當我按下這個按鈕,它進入活動在活動A A

,它會自動使用意圖和startActivityForResult()進入到活動B;

在Activity B中,它會使用Intents和startActivityForResul()自動轉到Activity C;

在活動B中,它會自動啓動去BarCode掃描儀活動並獲取結果的意圖。

當我按下一個按鈕,返回到我的主頁我的問題是,它需要按4次回到我的主頁

如果我想按回我的主頁在同一時間,如何完成這樣的系列活動?

+0

的後退按鈕[應該以這種方式工作( http://ux.stackexchange.com/questions/15939/android-back-button-global-history-back-or-menu-back)。您可能想要實現向上按鈕(蜂窩和更高版本,除非您使用類似ActionBarSherlock的東西)。 – 2012-07-14 04:46:38

回答

3

請勿在程序中的任何位置使用/覆蓋onBackPressed()

只需在父級活動中添加以下方法,例如活動A和B

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
} 

開始使用

startActivityForResult(intentName, 0); 

在兒童活動使用/覆蓋的onStop()方法,你的onClick方法活動

@Override 
protected void onStop() 
{ 
    super.onStop(); 

} 
+0

如果你喜歡這個,請爲我投票 – RajeshVijayakumar 2012-09-11 12:14:50

+0

我不明白你在這裏做了什麼?你能解釋一下嗎? – Darpan 2014-07-31 10:22:00

2

您可以覆蓋下面的方法恢復主頁

@Override 
    public void onBackPressed() { 
     // TODO Auto-generated method stub 
     super.onBackPressed(); 
    } 

在該方法具有以下標籤創建爲家庭活動的意圖

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

文件稱

如果已設置,並且正在啓動的活動已在 當前任務中運行,則t如果母雞不是啓動該活動的新實例,則其上的所有其他活動都將被關閉,並且 此Intent將作爲 新Intent遞送到(現在在最上面)舊活動。

但是我想知道的是,那麼爲什麼你要開始活動的結果,因爲你不會回到以前的活動。

0
finishActivity(requestCode) 

使用上述最後一項活動代碼,以便按後退按鈕後,將關閉所有正在開始

requestcode活動是你在第一個活動用於啓動活動B中的代碼

0
you may try this 
    Intent intent = new Intent(currentActivity.this, otherActivity.class); // instead of otherActivity use your activity 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.putExtra("EXIT", true); 
    startActivity(intent); 

And, in your other onCreate() use below code - 

if (getIntent().getBooleanExtra("EXIT", false)) { 
    finish(); 
}