2013-04-23 169 views
0

我有一個問題,後退按鈕工作正常。除非您按下主頁按鈕,否則請重新輸入應用程序,然後再次按下後退按鈕。然後它退出應用程序,因爲它們沒有任務線索(活動)Android如何防止後退按鈕退出應用程序(按回家按鈕後)

這是我的同事代碼,其中我正在嘗試修復。 Android.R.id.home是有問題的軟返回按鈕,但操作系統後退按鈕也會發生同樣的情況。

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     Intent intent; 
     switch (item.getItemId()) { 
     case android.R.id.home: 
      activity.finish(); 
      return true; 
     case R.id.menu_paymentLocs: 
      intent = new Intent(activity, PaymentLocationsPage.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); 
      activity.startActivity(intent); 
      return true; 
     case R.id.menu_feedback: 
      intent = new Intent(activity, FeedbackPage.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); 
      activity.startActivity(intent); 
      return true; 
     case R.id.menu_about: 
      intent = new Intent(activity, AboutPage.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); 
      activity.startActivity(intent); 
      return true; 
     case R.id.menu_changeconsumer: 
      new SelectConsumerDialogFragment().show(getFragmentManager(), "select_consumer"); 
      return true; 
     case R.id.menu_logout: 
      intent = new Intent(activity, SplashPage.class); 
      myMeter.logout(); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
      activity.startActivity(intent); 
      return true; 
     } 
     return true; 
    } 
+0

當你按回家並重新進入你的主要活動? – 2013-04-23 03:26:10

+0

不,它是一個正常的活動 – Baconbeastnz 2013-04-23 03:30:01

+0

所以你是你離開的地方,但如果你按下後退按鈕,那麼應用程序關閉,而不是恢復以前的活動嗎? – 2013-04-23 03:34:40

回答

0

爲了防止後退按鈕做任何事情預先定義你需要重寫onbackpressed()方法

試試這個,如果你使用的API級別2.0或更高

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

我認爲問題在於,我的家庭按鈕正在清理後面的堆棧,而且不應該是!我檢查了我的清單,沒有任何東西似乎清理它。 – Baconbeastnz 2013-04-23 03:19:06

+0

@Baconbeastnz:這裏你的主頁按鈕實際上在做什麼? – 2013-04-23 03:26:23

0

刪除所有intent.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);