2017-07-23 73 views
-5

爲什麼有些API將處理程序作爲方法參數?什麼是可能的用例?具體而言,我需要有人解釋爲什麼我們需要一個處理程序在 dispatchgesture方法。我正在嘗試使用此dispatchgesture方法代表用戶執行拖動操作。作爲方法參數的處理程序

boolean dispatchGesture (GestureDescription gesture, 
       AccessibilityService.GestureResultCallback callback, 
       Handler handler) 
+0

如果你想在非UI線程 – pskink

+0

運行'callback'是有可能使用此方法對用戶代表進行拖動,這是很有用... @pskink – sevenio

+0

從來沒有嘗試過... – pskink

回答

0

dispatchGesturedoc

回調AccessibilityService.GestureResultCallback:的目的是 回叫時的姿勢的狀態是已知的。如果爲空,則不報告狀態 。

處理處理器:上回叫 回調對象的句柄。如果爲null,則在服務的主線程上回調該對象。

這基本上意味着,如果您不提供處理程序,那麼給定的回調將在主線程上運行。

總是不鼓勵在主線程中運行昂貴的UI更新程序任務。所以,當你將一個處理程序作爲方法參數傳遞時,大部分時間都是通過脫掉一些繁重的任務來減輕UI線程的工作量,在另一個線程(處理程序,在這種情況下)中處理它併發布完成後的結果。

+0

這個回答我的問題關於處理程序...但是我想實現的拖動功能如何?可能嗎 ? @fluffyBatman – sevenio

+0

恐怕我無法幫助你。 – fluffyBatman