Le problème est que vous mettez à jour l'interface utilisateur en bloquant le thread de l'interface utilisateur, puis en le remettant à jour. Vous ne devriez pas mettre en sommeil le thread de l'interface utilisateur, c'est une mauvaise pratique et les utilisateurs ne l'apprécieront pas.
Le threading résoudrait le problème, mais vous n'avez vraiment pas besoin d'un thread pour ce que vous faites ici (de plus, vous ne devriez pas mettre à jour l'interface utilisateur à partir d'un thread d'arrière-plan, vous devriez utiliser un gestionnaire pour envoyer un message).
Vous devriez utiliser un gestionnaire seul pour effectuer ce type de mise à jour simple, car il n'utilise pas de thread supplémentaire dans l'application. Vous pouvez utiliser la méthode postDelayed pour qu'il rappelle votre thread d'interface utilisateur à un moment précis.
Cet article http://developer.Android.com/resources/articles/timed-ui-updates.html couvre la mise en œuvre d'une mise à jour de l'interface utilisateur dans le temps et est assez simple.
Pour convertir votre exemple :
//member variable
private Handler mHandler = new Handler();
//In your current Method
view.setText("hello");
mHandler.postDelayed(mUpdateTimeTask, 1000);
//Member variable
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
view.setText("world");
}
};