title: App Goes Blank and Suspending all threads took: issue
body: <p>I have a issue with a little android project.
  I build a hangman game and when i place a word with repeated letter in the variable called "palavra" the app goes blank.</p>
  
  <p>I believe that the issue is related whit this code piece:                       </p>
  
  <pre><code>while(parciais.contains(Character.toString(letras_possiveis[numero].charAt(0)))){ numero = random.nextInt(26);}
  </code></pre>
  
  <p>I believe in this because when i define this piece like comment, the issue doesn't happen anymore. I searched here and heard something  about place too many comands in the onCreate method and is best to place the code in the method onCreateView(), but i'm studying by myself and i dont know this method yet.
  Thank everybody</p>
  
  <p>My MainActivity:</p>
  
  <pre><code>package mateus.studio.com.forca;
  
  import android.graphics.Color;
  import android.support.v7.app.AppCompatActivity;
  import android.os.Bundle;
  import android.view.View;
  import android.widget.Button;
  import android.widget.ImageView;
  import android.widget.TextView;
  import java.util.Random;
  
  public class MainActivity extends AppCompatActivity {
  
  String palavra = "CAVALO", parciais = "", parciais_botoes = "", letrasacertadas="";
  String[] letras_possiveis = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
  char[] letras_botoes = new char[25];
  String[] letras_certas = new String[palavra.length()];
  int erros = 0;
  
  TextView txt_tela, txt_erro;
  ImageView imagem;
  
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
      txt_tela = (TextView) findViewById(R.id.txt_palavra);
      txt_erro = (TextView) findViewById(R.id.txt_erro);
      imagem = (ImageView) findViewById(R.id.img_status);
  
      int botoes_letras[] = {R.id.button0, R.id.button1, R.id.button2, R.id.button3, R.id.button4,
              R.id.button5, R.id.button6, R.id.button7, R.id.button8, R.id.button9,
              R.id.button10, R.id.button11, R.id.button12, R.id.button13, R.id.button14, R.id.button15,
              R.id.button16,R.id.button17, R.id.button18, R.id.button19, R.id.button20, R.id.button21,
              R.id.button22, R.id.button23, R.id.button24};
  
  
  
    for (int a = 0; a &lt; 25; a++){
          try {
              letras_botoes[a] = palavra.charAt(a);
              parciais = parciais + letras_botoes[a];
          }catch (StringIndexOutOfBoundsException e){
              Random random = new Random();
              int numero = random.nextInt(26);
  
              //verifica se a letra gerada pelo random já saiu e só sai do loop quando tem-se uma nova
  
              while(parciais.contains(Character.toString(letras_possiveis[numero].charAt(0)))){
                  numero = random.nextInt(26);
              }
              //Coloca as letras no letras_botões (Mas só depois que formar o nome)
  
              letras_botoes[a] = letras_possiveis[numero].charAt(0);
              parciais = parciais + letras_botoes[a];
          }
      }
  
  //fOR QUE BUGA CASO TENHA LETRAS IGUAIS
       for (int a = 0; a&lt; 25; a++) {
           Random aleatatorio = new Random();
           int al = aleatatorio.nextInt(25);
           while (parciais_botoes.contains(Character.toString(letras_botoes[al]))) {// Código que buga a parada toda
               al = aleatatorio.nextInt(25);                                         // Código que buga a parada toda
           }
  
           parciais_botoes = parciais_botoes + letras_botoes[al];
  
           //aQUI DEVE SE COLOCAR O CODIGO DE INSTANCIAR OS BOTO
           final Button botao;
           botao = (Button) findViewById(botoes_letras[a]);
           botao.setText(Character.toString(letras_botoes[al]));
  
  
       }
  
      for (int a = 0; a &lt; letras_certas.length; a++){
          if (letras_certas[a] == null){
              letras_certas[a]="_ ";
          }
      }
  
      for (int a = 0; a &lt; palavra.length(); a++){
          txt_tela.setText("_ " + txt_tela.getText());
      }
  
  }
  
  
  
  public void verifica_letra(View view) {
      letrasacertadas = txt_tela.getText().toString();
  txt_tela.setText("");
      for (int i = 0; i &lt; palavra.length(); i++) {
          String texto = ((Button) view).getText().toString() ;
          if (palavra.charAt(i) == texto.charAt(0)) {
              letras_certas[i] = texto;
  
              //  ta de boa, não mexe, pelo amor de Jeová
  
          } else {
              ((Button) view).setBackgroundColor(Color.parseColor("#800000"));
              }
  
          verifica_erro(view);
      }
  
   for (int a = 0 ; a &lt; letras_certas.length ; a++){
       txt_tela.setText(txt_tela.getText() + letras_certas[a]);
  
   }
  }    
     public void verifica_erro (View view){
      if (palavra.contains(((Button) view).getText().toString())) ((Button) view).setBackgroundColor(Color.parseColor("#006400"));
      else {
          ((Button) view).setBackgroundColor(Color.parseColor("#800000"));
          erros ++;
  
      }
  
     if (letrasacertadas.equals(palavra)){
         setContentView(R.layout.venceu);
     }else {
     switch (erros/palavra.length()){
         case 0:
             imagem.setImageResource(R.drawable.base);
             break;
  
         case 1:
             imagem.setImageResource(R.drawable.a);
             break;
         case 2:
             imagem.setImageResource(R.drawable.b);
             break;
         case 3:
             imagem.setImageResource(R.drawable.c);
             break;
  
         case 4:
             imagem.setImageResource(R.drawable.d);
             break;
  
         case 5:
             imagem.setImageResource(R.drawable.e);
             break;
  
         case 6:
             imagem.setImageResource(R.drawable.f);
             break;
  
         default:
             setContentView(R.layout.perdeu);
             break;
     }}
  
     txt_erro.setText("Erros: "+erros/palavra.length());
  
  }
  }
  </code></pre>
  
  <p>This is what i see in Logcat:</p>
  
  <pre><code>01-19 22:26:47.815 30117-30117/? E/Zygote: v2
  01-19 22:26:47.815 30117-30117/? I/libpersona: KNOX_SDCARD checking this for 10116
  01-19 22:26:47.815 30117-30117/? I/libpersona: KNOX_SDCARD not a persona
  01-19 22:26:47.815 30117-30117/? I/SELinux: Function: selinux_compare_spd_ram , priority [2] , priority version is VE=SEPF_SM-    G530H_5.0.2-1_0018
  01-19 22:26:47.815 30117-30117/? E/SELinux: [DEBUG] get_category: variable seinfo: default sensitivity: NULL, cateogry: NULL
  01-19 22:26:47.815 30117-30117/? I/art: Late-enabling -Xcheck:jni
  01-19 22:26:47.905 30117-30117/? D/TimaKeyStoreProvider: in addTimaSignatureService
  01-19 22:26:47.915 30117-30117/? D/TimaKeyStoreProvider: Cannot add TimaSignature Service, License check Failed
  01-19 22:26:47.915 30117-30117/? D/ActivityThread: Added TimaKesytore provider
  01-19 22:26:48.135 30117-30117/mateus.studio.com.forca D/DisplayManager: DisplayManager()
  01-19 22:26:48.355 30117-30130/mateus.studio.com.forca I/art: Background partial concurrent mark sweep GC freed 247(41KB) AllocSpace objects, 0(0B) LOS objects, 62% free, 4MB/12MB, paused 11.957ms total 45.761ms
  01-19 22:26:52.035 30117-30123/mateus.studio.com.forca W/art: Suspending all threads took: 21.840ms
  01-19 22:26:52.545 30117-30123/mateus.studio.com.forca W/art: Suspending all threads took: 30.195ms
  01-19 22:26:53.055 30117-30123/mateus.studio.com.forca W/art: Suspending all threads took: 38.104ms
  01-19 22:26:58.055 30117-30123/mateus.studio.com.forca W/art: Suspending all threads took: 23.713ms
  01-19 22:26:58.545 30117-30123/mateus.studio.com.forca W/art: Suspending all threads took: 17.573ms
  01-19 22:26:59.795 30117-30130/mateus.studio.com.forca W/art: Suspending all threads took: 5.640ms
  01-19 22:26:59.825 30117-30130/mateus.studio.com.forca I/art: Background sticky concurrent mark sweep GC freed 176441(5MB) AllocSpace objects, 0(0B) LOS objects, 30% free, 8MB/12MB, paused 6.563ms total 48.098ms
  01-19 22:27:00.315 30117-30130/mateus.studio.com.forca W/art: Suspending all threads took: 8.270ms
  01-19 22:27:00.355 30117-30130/mateus.studio.com.forca I/art: Background sticky concurrent mark sweep GC freed 173108(5MB) AllocSpace objects, 0(0B) LOS objects, 30% free, 8MB/12MB, paused 9.271ms total 53.534ms
  01-19 22:27:00.545 30117-30123/mateus.studio.com.forca W/art: Suspending all threads took: 5.498ms
  01-19 22:27:02.585 30117-30123/mateus.studio.com.forca W/art: Suspending all threads took: 49.126ms
  01-19 22:27:03.455 30117-30129/mateus.studio.com.forca I/art: WaitForGcToComplete blocked for 34.767ms for cause HeapTrim
  01-19 22:27:06.065 30117-30123/mateus.studio.com.forca W/art: Suspending all threads took: 22.617ms
  01-19 22:27:09.065 30117-30123/mateus.studio.com.forca W/art: Suspending all threads took: 12.519ms
  01-19 22:27:12.085 30117-30123/mateus.studio.com.forca W/art: Suspending all threads took: 25.450ms
  01-19 22:27:19.105 30117-30123/mateus.studio.com.forca W/art: Suspending all threads took: 25.492ms
  01-19 22:27:23.495 30117-30129/mateus.studio.com.forca I/art: WaitForGcToComplete blocked for 27.446ms for cause HeapTrim
  </code></pre>