Bonjour, je vous écris car j'ai un soucis avec un thread qui fait quelque chose uqe je ne comprends, quand ma methode le lance, l'interface se freeze et ça ne répond pas tant qu'il n'a pas fini ce qu'il avait à faire.
C'est en fait un thread qui joue des bips pour figurer du code morse
Voici le code de ma méthode :
Et celui de mon thread :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 public void onClick(View v) { switch (v.getId()) { case R.id.bok: case R.id.textView: im.hideSoftInputFromWindow(eText.getWindowToken(), 0); case R.id.bMorse: texte = ""; morseTxt = ""; tView.setText(""); texte = eText.getText().toString(); morseTxt = stringToMorse(texte); tView.setText(morseTxt); break; case R.id.bAudio: texte = ""; morseTxt = ""; tView.setText(""); texte = eText.getText().toString(); morseTxt = stringToMorse(texte); for (char c : morseTxt.toCharArray()) { t.run(c, tView); } break; case R.id.editText: tView.setText(""); break; } }
Voilà c'est p'tet un betise mais je débute
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public class bipThread extends Thread { public synchronized void run(char s, final TextView tv) { switch (s) { case '.': sp.play(bipPoint, 1, 1, 0, 0, 1); Log.i("On passe dans le thread", "A"); try { sleep(320); } catch (InterruptedException e) { e.printStackTrace(); } break; case '-': sp.play(bipBarre, 1, 1, 0, 0, 1); Log.i("On passe dans le thread", "A"); try { sleep(380); } catch (InterruptedException e) { e.printStackTrace(); } break; case ' ': try { sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } break; // tView.setText(tView.getText() + Character.toString(c)); } } }
Le lien de l'appli est ici https://market.android.com/details?i...b3JzZWNvZGUiXQ..
Merci pour votre aide![]()
Partager