Java 在Android中重复执行后台线程的最佳方法?
我需要不断地从USB读取数据(至少间隔50毫秒),同时更新几个Java 在Android中重复执行后台线程的最佳方法?,java,android,multithreading,usb,Java,Android,Multithreading,Usb,我需要不断地从USB读取数据(至少间隔50毫秒),同时更新几个视图 使用处理程序可以很容易地更新视图,但是由于USB读取执行了太多的工作,并且不需要触摸UI线程,因此必须在不同的线程上完成 我反复阅读了一些关于执行AsyncTask的问题,如果我错了,请纠正我:这似乎不是一个好方法 在Android中重复执行后台工作的最佳方法是什么?如果您需要对所用时间进行更细粒度的控制,我建议您使用循环启动一个单独的线程,并在轮询之前使用等待。当您有新的内容时,将其与处理程序一起分派到UI线程 类似这样的东西
视图
使用处理程序
可以很容易地更新视图
,但是由于USB读取执行了太多的工作,并且不需要触摸UI线程,因此必须在不同的线程上完成
我反复阅读了一些关于执行AsyncTask
的问题,如果我错了,请纠正我:这似乎不是一个好方法
在Android中重复执行后台工作的最佳方法是什么?如果您需要对所用时间进行更细粒度的控制,我建议您使用循环启动一个单独的线程,并在轮询之前使用等待。当您有新的内容时,将其与处理程序一起分派到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;
}
};