2017-07-03 3 views
-4

Je suis nouveau en codage Android (Java). J'ai un petit programme de jeu téléchargé. Dans ce le fil de résilier, avoir le codeComment le flux de code dans la boucle while va Android?

@Override 
public void surfaceDestroyed(SurfaceHolder holder) { 
    boolean retry = true; 
    while (retry) { 
     try { 
      thread.setRunning(false); 
      thread.join(); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
     retry = false; 
    } 
} 

Ici, l'auteur du code dit que si intercepter l'exception, le code va essayer de ne pas partie de la déclaration retry = false; Je ne pouvais pas le croire. s'il vous plaît aviser le flux est correct.

program flow

S'il vous plaît conseiller

Merci

Anes

Répondre

1

La boucle sera exécutée une fois. Peu importe si une exception est levée, car retry sera toujours défini sur false après la première exécution. Si vous voulez que la boucle continue jusqu'à ce qu'aucune exception ne soit levée, vous pouvez placer le directement après le thread.join(); dans le bloc try afin qu'il ne soit appelé que lorsque vous n'obtenez pas le bloc catch.

+0

Merci .. J'ai eu cette idée mais confus par un auteur tutoriel .. – Anes