2016-09-24 2 views
1

Je souhaite envoyer cinq données à Bluetooth. Le premier est allumé et le second est éteint, le troisième est allumé, et ainsi de suite ... Je veux post-retard entre allumer et éteindre (environ 1 seconde). Lequel est le meilleur pour le faire. À l'heure actuelle, je me sers du sommeil dans cette discussion classeQuelle est la meilleure méthode pour afficher un délai lors de l'envoi d'un message à Bluetooth?

for (int i=1;i<5;i++) { 
      try { 
       if(i%2==0){ 
        send(1); 
        Thread.sleep(500); 
       } 
       else{   
        send(0); 
        Thread.sleep(500); 
       } 

      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 

Répondre

1

essayer cette

private static final int STEP_ONE_COMPLETE = 0; 
private static final int STEP_TWO_COMPLETE = 1; 

... 

private doBackgroundUpdate1(){ 
    Thread backgroundThread = new Thread() { 
     @Override 
     public void run() { 
      // do first step 

      // finished first step 
      Message msg = Message.obtain(); 
      msg.what = STEP_ONE_COMPLETE; 
      handler.sendMessage(msg); 
     } 
    } 
    backgroundThread.start(); 
} 
private doBackgroundUpdate2(){ 
    Thread backgroundThread = new Thread() { 
     @Override 
     public void run() { 
      // do second step 

      // finished second step 
      Message msg = Message.obtain(); 
      msg.what = STEP_TWO_COMPLETE; 
      handler.sendMessage(msg); 
     } 
    } 
    backgroundThread.start(); 
} 
private Handler handler = new Handler(){ 
    @Override 
    public void handleMessage(Message msg) { 
     switch(msg.what){ 
     case STEP_ONE_COMPLETE: 
      doBackgroundUpdate2(); 
      break; 
     case STEP_TWO_COMPLETE: 
      // do final steps; 
      break; 
     } 
    } 
} 
+0

si longtemps. Je l'utilise en service. Et la cible principale est le délai entre deux envoi 0 et 1 – user3051460