2014-02-25 32 views
1

這是我的應用程序的結構:onBackPressed()覆蓋

活性A是ListViewActivity與按鈕開始B活性。

在完成表單後的B活動中,有一個按鈕可以啓動C活動。

C活動保存設置並創建一條新記錄以顯示在A活動中。保存在C活動中的按鈕啓動A活動。

如果用戶按下B按鈕上的返回按鈕(不通過C,因爲當我啓動它時,我設置了FLAG_ACTIVITY_NO_HISTORY),並且第二次按下返回按鈕再次給A,這個重複次數等於創建記錄的數量。

用後退按鈕關閉應用程序成爲一個漫長的過程。

我想從A活動的onBackPressed總是關閉應用程序。

英語不是我的語言,我希望我很清楚。

回答

2

總是開始的活動爲您像下面

Intent intent = new Intent(current_activity_context, A.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    finish(); 
+0

Yhea它工作正常。 – TWONEKSONE

+0

爲什麼必要的呼叫完成()? – TWONEKSONE

0

的方法完成()會做到這一點。 像這樣

Intent intent = new Intent(getApplicationContext(), 
       Activity B.class); 
     Activity A.this.startActivity(intent); 

     finish(); 
0

試試這個

@Override 
public void onBackPressed() { 
    // Do Here what ever you want do on back press; 
} 
0

您必須重寫OnBackPressed方法

@Override 
public void OnBackPressed(){ 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
    super.onBackPressed();//Optional 
} 

希望它能幫助。