2014-01-16 56 views
0

在我的主要活動中,用戶會收到通知,按下硬件返回按鈕退出應用程序。除了用戶死亡時,這在大多數情況下都適用。當用戶死亡時,它會轉到GameOverActivity。如果用戶在此活動中按下後退按鈕,然後繼續在主要活動上按回兩次,則它將重新開放遊戲而不是活動。這裏是代碼,我已經在遊戲中的後退按鈕上聲明瞭finish()以完成活動,但它似乎沒有幫助。在按下的硬件按鈕上關閉應用程序兩次返回到前一個活動

MainScreen回戒菸方法:

@Override 
    public void onBackPressed() { 

     if (doubleBackToExitPressedOnce) { 
      super.onBackPressed(); 
      return; 
     } 
     this.doubleBackToExitPressedOnce = true; 
     Toast.makeText(this, "Press again to quit", Toast.LENGTH_SHORT).show(); 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       doubleBackToExitPressedOnce = false; 
      } 
     }, 2000); 
    } 

GameOverActivity代碼:

backButton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       Intent mainScreenActivityIntent = new Intent(GameOverActivity.this, MainScreenActivity.class); 
       startActivity(mainScreenActivityIntent); 
       finish(); 
      } 

     }); 
    } 

    @Override 
    public void onBackPressed() { 
     Intent mainScreenActivityIntent = new Intent(GameOverActivity.this, MainScreenActivity.class); 
     mainScreenActivityIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(mainScreenActivityIntent); 
     finish(); 
    } 

這裏是碰撞GameOverActivity的邏輯,從而創造:我想你

if (weight.getBounds().intersect(player.getBounds())) { 
       player.setTouched(false); 
       Intent gameOverIntent = new Intent(this.getContext(), GameOverActivity.class); 
       this.getContext().startActivity(gameOverIntent); 
       ((Activity) getContext()).finish(); 
      } 
+0

,而不是結束的()使用YourActivityName.this.finish();並嘗試 – jyomin

+0

沒有什麼區別 –

回答

0

有一些關於Activity life cycle的疑惑。 按下GameOverActivity會例示一個新的mainScreenActivity,這會產生您的問題。

,並在您GameOverActivity onbackpressed通話super.onBackPressed

@Override 
public void onBackPressed() 
{ 
    super.onBackPressed(); 
    // and dont start a new activity as you are stacking MainActivity instances 
    finish() 
} 
+0

我改變了它,但它不再去MainScreenActivity。 MainScreen不會被創建。 –

+0

如果您有Main - > Game - > Gameover,則將nohHistory標誌添加到遊戲中,然後您不需要覆蓋Gameover活動上的返回按鈕 –

0

您正在開始一個新的活動,剛剛完成當前活動,添加必要的代碼來完成你從onBackPressed開始活動。

0

你應該開始活動後,立即打電話給在MainScreenfinish()GameOverActivity

+0

GameOverActivity不會從MainScreen創建。 MainScreen啓動GameActivity,從而創建GameOverActivity。我將添加啓動GameOverActivity到帖子的邏輯。 –

相關問題