我需要不断地从USB读取数据( 50ms间隔至少)并同时更新几个View
。
使用View
可以很容易地实现更新Handler
,但由于USB读取执行的工作太多而且无需触摸UI线程,因此必须在不同的主题。
我已经阅读了一些like this关于反复执行AsyncTask
的问题,但如果我错了请纠正我:这似乎不是一个好方法。
在Android中重复执行背景工作 的最佳方法是什么?
答案 0 :(得分:4)
如果你需要对经过的时间进行更精细的控制,我建议你用循环开始一个单独的线程,并在轮询之前使用Thread.sleep等待。当你有新的东西时,用Handler将它分配给UI线程。
像这样的东西(粗略的草图,应该给你一个想法):
new Thread() {
private boolean stop = false;
@Override public void run() {
while (!stop) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
// poll the USB and dispatch changes to the views with a Handler
}
}
public void doStop() {
stop = true;
}
};