如何在onTouch()中等待n毫秒?

在onTouch()方法中,我正在监听MotionEvent.ACTION_MOVE事件,该事件在手指悬停在屏幕上的特定按钮上方时触发(即用户将手指按住在该按钮上)。该按钮具有附加的侦听器,因此当手指在该按钮上方滑动时会触发onTouch()方法(并且ACTION_MOVE实际上发生数十次/秒)。这种行为是我所需要的。

编辑: 我唯一感兴趣的事件是ACTION_MOVE,即仅当手指将鼠标悬停在该按钮上时才需要执行代码(仅当ACTION_MOVE在5000ms的时间范围内发生时)。我没有ACTION_DOWN或ACTION_UP事件。

这里要注意的关键是,当手指在该特定按钮上方“移动”时,此事件仅在几秒钟内发生了一百次。

我想做的是等待一段时间(例如5000毫秒),并且在经过5000毫秒后(用户仍将手指按在该按钮上!),我想调用一个特定的方法来执行某些任务。如果用户触摸并按住其他按钮,则不应调用该方法。

我曾尝试使用Handler和Runnable,但问题是onTouch()方法,该方法仅在几秒钟内调用此Handler一百次:

final Runnable runnable = new Runnable() {
    public void run() {
        // call specific method to do some task here
    }
};
handler.postDelayed(runnable, 5000);

我也曾尝试致电:

handler.removeCallbacks(runnable);

handler.removeCallbacksAndMessages(null);

当手指没有悬停在按钮上以取消Handler时,但它无法正常工作。 有人可以给我一个主意,我应该怎么做才能解决这个问题?谢谢!