2016-09-24 40 views
1

我想发送五个数据到蓝牙。第一个打开,第二个打开,第三个打开,等等......我想要打开和关闭之间的延迟时间(大约1秒)。哪一个是最好的。目前,我使用的睡眠Thread类发送消息到蓝牙时,发送延迟是最好的方法吗?

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(); 
      } 
     } 

回答

1

试试这个

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

这么久。我正在使用它在服务中。主要目标是两个发送0和1之间的延迟 – user3051460