2013-03-04 74 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。