我正在使用远程设备做一些IO,它可以很快地向我发送更新(比如说每秒60次)。我通过InputStream对象获取数据。在InputStream.read()阻塞的不太可能的情况下,我需要检测这个以修复块(尝试重置连接等)。每次发出read()调用时,我都希望在调用方法之前等待一段时间的并行超时。
似乎有很多方法可以在Android / Java中执行定时任务。定时器,线程,执行器等。最有效的方法是什么,特别是考虑到分配和取消计划任务的速度有多快?
答案 0 :(得分:0)
处理程序还专门用于安排延迟任务。您可以使用以下方式轻松安排任务:
private void scheduleButAlsoReschedule(final View v){
v.getHandler().removeCallbacksAndMessages(null);
v.getHandler().postDelayed(new Runnable(){
@Override
public void run() {
// do something here, Note: this is UI-thread
}}, DISMISS_DELAY);
}
v.getHandler().removeCallbacksAndMessages(null);
删除当前队列中的所有回调或消息。您还可以指定要从队列中删除哪个Runnable。