在Android的觸摸消息中,已經實現了三種監測,它們分別是
1)pre-pressed:對應的語義是用戶輕觸(tap)了屏幕
2)pressed:對應的語義是用戶點擊(press)了屏幕
3)long pressed:對應的語義是用戶長按(long press)了屏幕
下圖是觸摸消息隨時間變化的時間軸示意圖:
其中,t0和t1定義在ViewConfiguration類中,標識了tap和longpress的超時時間,定義如下:
1)PostDelayed函數
該函數的主要工作是獲取UI線程的Handler對象,然後調用Handler類的postDelayed函數將指定的Runnable對象放到消息隊列中。
該類實現了Runnable接口,在run函數中設置觸摸標識,並刷新Drawable的狀態,同時用於發送一個檢測長按事件的異步延遲消息,代碼如下:
3)CheckForLongPress類
該類定義了長按操作發生時的響應處理,同樣實現了Runnable接口