0

我正在使用远程设备进行一些 IO,该设备可以很快地向我发送更新(比如每秒 60 次)。我通过 InputStream 对象获取数据。万一 InputStream.read() 阻塞,我需要检测到这个来修复阻塞(尝试重置连接等)。每次我发出 read() 调用时,我都想要一个并行超时,它会在调用方法之前等待一定的时间。

似乎有很多方法可以在 Android/Java 中执行定时任务。计时器、线程、执行程序等。具体考虑到分配和取消计划任务的速度,最有效的方法是什么?

4

1 回答 1

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。

于 2013-09-26T02:54:15.573 回答