Modification d'une vue dans l'UI ralenti mon application
Bonsoir, j'ai un long traitement pour des edittexts dans un thread externe et l'UI avec la méthode View::post , mais le problème, c'est que l'application reste bloqué jusqu'à ce que le traitement soit terminé malgré qu'il est dans un autre thread.
et si je fait tout le traitement dans le thread principal, sa vitesse est meilleur que celle de l'autre cas.
voici le morceau de code correspondant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public void run() {
Point limit;
if(isH)
limit= edit2.getLimitH(); //edit2 est une instantiation d'une classe héritant EditText
else
limit= edit2.getLimitV();
for(int i=limit.x;i<=limit.y;i++){
final MyEditText edit;
edit = myList.get(new Point(edit2.getPosition().x, i));
// la partie sensible !
edit.post(new Runnable() {
@Override
public void run() {
if(hasFocus)
edit.setBackgroundDrawable(bg1);
else
edit.setBackgroundDrawable(bg0);
}
}) ;
}
} |