2013-03-04 57 views
0

如何使class实现一个java.lang.Runnable接口连续运行而不阻塞整个应用程序。使Java Runnable连续运行

例如:

private void startHandler(UsbDevice d) { 
    if (mLoop != null) { 
     mConnectionHandler.onErrorLooperRunningAlready(); 
     return; 
    } 
    mLoop = new UsbRunnable(d); 
    mUsbThread = new Thread(mLoop); 
    mUsbThread.start(); 
} 

需要使mLoop的run()方法可连续运行。 UsbRunnable实现了Runnable接口。

+2

什么是UsbRunnable的代码? – 2013-03-04 10:58:24

回答

2

如何让一个实现java.lang.Runnable接口的类在不阻塞整个应用程序的情况下持续运行。

你需要两样东西:

  • run()方法内环路
  • 调用哪些块,通常是由您的设备
public class USBRunnable implements Runnable { 

    public void run() { 
     while (isRunning) { 
      data = readFromUSBDevice(); // waits until data is available, returns the data read 
      processData(data); 
     } 
    } 
} 
0

的典型方法是把一个循环,run

public void run() { 
    while (!terminationCondition) { 
     // Do work 
    } 
} 

run应该模拟总工作Runnable需要做的,是工作的不只是一个迭代。所以如果它需要重复工作直到它停止,你可以使用一个循环来做到这一点。

0

能有沟通while(true){......}在实现的类的run方法内循环可运行。可以将此线程标记为deamon。