在Android中快速安排和取消定时任务

时间:2013-09-26 02:47:30

标签: java android

我正在使用远程设备做一些IO,它可以很快地向我发送更新(比如说每秒60次)。我通过InputStream对象获取数据。在InputStream.read()阻塞的不太可能的情况下,我需要检测这个以修复块(尝试重置连接等)。每次发出read()调用时,我都希望在调用方法之前等待一段时间的并行超时。

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

1 个答案:

答案 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。