2014-12-03 4 views
0

У меня разные классы уровней, которые я вызываю из одной функции. Проблема в том, что иногда Endscreen.Class не закрывается ... Но это происходит только с уровня 5 и выше.finish() иногда не работает

Моя функция в 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

0

Я исправил проблему с:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK); 
Смежные вопросы