2014-12-03 70 views
0

我有不同的级别类,我从一个函数调用。 问题是,有时Endscreen.Class不会关闭......但它只发生在Level5及以上。完成()有时不工作

我在Endscreen.class功能:

public void NextLevel(View v){ 
    switch(currentLevel){ 
     case 1: 
      Intent nLvl1 = new Intent (this, Level2.class); 
      startActivity(nLvl1); 
      finish(); 
      break; 
     case 2: 
      Intent nLvl2 = new Intent (this, Level3.class); 
      startActivity(nLvl2); 
      finish(); 
      break; 
     case 3: 
      Intent nLvl3 = new Intent (this, Level4.class); 
      startActivity(nLvl3); 
      finish(); 
      break; 
     case 4: 
      Intent nLvl4 = new Intent (this, Level5.class); 
      startActivity(nLvl4); 
      finish(); 
      break; 
     case 5: 
      Intent nLvl5 = new Intent (this, Level6.class); 
      startActivity(nLvl5); 
      finish(); 
      break; 
     case 6: 
      Intent nLvl6 = new Intent (this, Level7.class); 
      startActivity(nLvl6); 
      finish(); 
      break; 
     case 7: 
      Intent nLvl7 = new Intent (this, Level8.class); 
      startActivity(nLvl7); 
      finish(); 
      break; 
     case 8: 
      Intent nLvl8 = new Intent (this, Level9.class); 
      startActivity(nLvl8); 
      finish(); 
      break; 
     case 9: 
      Intent nLvl9 = new Intent (this, LevelSelect.class); 
      startActivity(nLvl9); 
      finish(); 
      break; 
    } 
} 

回答

0

这种简易修复。对于每一个意图,补充一点:

intentName.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

那将摆脱目前活动的方式,你希望它finish()

您可以阅读关于此here的文档。

+0

它不适合LEVEL5工作,再上方 – Skyrisu 2014-12-03 23:29:29

0

我解决了这一问题有:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);