如何使class
实现java.lang.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接口。
答案 0 :(得分: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);
}
}
}
答案 1 :(得分:0)
典型的方法是在run
:
public void run() {
while (!terminationCondition) {
// Do work
}
}
run
应该对Runnable
需要做的总工作进行建模,而不仅仅是该工作的一次迭代。因此,如果它需要重复工作直到它停止,你就会使用一个循环来做到这一点。
答案 2 :(得分:0)
可以有一段时间(true){......}循环实现runnable的类的run方法。可以将此主题标记为deamon。