2014-01-24 65 views
1

因此,如果我进行设置活动或进行游戏活动,我已经实施了双击退出我的主要活动,该活动可以正常退出。然而,如果我去主要活动 - > gameactivity - > gameoveractivity,然后按回它开始主要活动罚款,但然后双重压力只是返回到gameoveractivity,我不知道为什么当我从通过游戏活动开始mainactivity完成。在双击时退出应用程序时出现问题

mainscreenactivity:

// button listeners 
     playButton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       Intent gameActivityIntent = new Intent(MainScreenActivity.this, GameActivity.class); 
       startActivity(gameActivityIntent); 
       overridePendingTransition(R.anim.righttocenter, R.anim.centertoleft); 
       finish(); 
      } 

     }); 

     settingsButton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent settingsActivityIntent = new Intent(MainScreenActivity.this, SettingsActivity.class); 
       MainScreenActivity.this.startActivity(settingsActivityIntent); 
       overridePendingTransition(R.anim.righttocenter, R.anim.centertoleft); 
      } 

     }); 

gameactivity:

// handle hardware back button 
    @Override 
    public void onBackPressed() { 
     Intent mainScreenActivityIntent = new Intent(GameActivity.this, MainScreenActivity.class); 
     startActivity(mainScreenActivityIntent); 
     overridePendingTransition(R.anim.lefttocenter, R.anim.centertoright); 
     finish(); 
    } 

逻辑代码来处理要gameoveractivity:

if (weight.getBounds().intersect(player.getBounds())) { 
       timer.cancel(); 
       gameTimer.cancel(); 
       player.setTouched(false); 
       save(score, time); 
       Intent gameOverIntent = new Intent(this.getContext(), GameOverActivity.class); 
       this.getContext().startActivity(gameOverIntent); 
       ((Activity) this.getContext()).finish(); 
      } 

gameoveractivity:

// handle hardware back button 
    @Override 
    public void onBackPressed() { 
     Intent mainScreenActivityIntent = new Intent(GameOverActivity.this, MainScreenActivity.class); 
     mainScreenActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     GameOverActivity.this.startActivity(mainScreenActivityIntent); 
     overridePendingTransition(R.anim.lefttocenter, R.anim.centertoright); 
     finish(); 
    } 

编辑:可以通过在创建gameoveractivityintent之后在游戏逻辑代码中添加以下内容来解决此问题:gameOverIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

回答

1

管理通过将该修正此:

gameOverIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
在游戏逻辑代码

创建gameoveractivityintent之后。

相关问题