2015-10-27 2 views
-2

Au code ci-dessous j'essaie de prendre la position actuelle de l'utilisateur chaque seconde comme axises x et y.A la première fois de la boucle, le code fonctionne.Mais deuxième et ainsi de suite, il ne marche pas work.What est la chose manquante sur cette code.What devrais-je de do.Thanks ..Je ne peux pas mettre à jour plus d'un sur mon fil infini dans le bouton cliquez

new Thread(new Runnable(){ 
    @Override 
    public void run() { 
     while (true) { 
      runOnUiThread(new Runnable() { 
       public void run() { 
        textViewXAltitude.setText(String.valueOf(gps.getLatitude())); 
        textViewYAltitude.setText(String.valueOf(gps.getLongitude())); 

       } 
      }); 
      try { 
       Thread.sleep(1000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
}).start(); 

Répondre

0

vous devriez le faire par Handler, par exemple:

 final Handler handler = new Handler() { 
     public void handleMessage(Message msg) { 
      if (msg.what == 0x123) { 
       textViewX.setText(String.valueOf(i++)); 
       textViewY.setText(String.valueOf(j++)); 
      } 
     } 
    }; 

    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      new Timer().schedule(new TimerTask() { 
       @Override 
       public void run() { 
        handler.sendEmptyMessage(0x123); 
       } 
      }, 0, 1000); 
     } 
    });