Android Handler是用于處理線程間通信的一個類。它主要使用以下方法:
Handler(Looper looper)
:構造函數,用于創建一個Handler實例并關聯一個Looper。Looper是線程內的一個消息隊列,Handler會使用這個隊列來發送和處理消息。
handleMessage(Message msg)
:此方法用于處理從隊列中獲取到的消息。當其他線程調用sendMessage()
方法發送消息時,此方法會在關聯的Looper的線程中被調用。
sendMessage(Message msg)
:此方法用于向關聯的Looper的消息隊列發送一個消息。調用此方法的線程可以是主線程或其他線程。消息會被添加到隊列中,然后由關聯的Looper中的Handler進行處理。
sendMessageAtTime(Message msg, long uptimeMillis)
:此方法與sendMessage()
類似,但它允許你指定消息發送的時間(以毫秒為單位)。消息會被添加到隊列中,但在指定的時間之前不會被處理。
sendMessageDelayed(Message msg, long delayMillis)
:此方法與sendMessage()
類似,但它允許你指定消息發送的延遲時間(以毫秒為單位)。消息會被添加到隊列中,但在指定的延遲時間之后才會被處理。
removeMessages(int what)
:此方法用于移除與指定標識符(what
)匹配的所有消息。
removeCallbacks(Runnable callback)
:此方法用于移除之前添加的一個或多個回調。
post(Runnable r)
:此方法用于在當前線程的Handler中執行一個Runnable對象。這對于在主線程中執行耗時操作(如網絡請求)非常有用,因為它可以避免阻塞主線程。
postDelayed(Runnable r, long delayMillis)
:此方法與post()
類似,但它允許你指定回調執行的延遲時間(以毫秒為單位)。
postAtTime(Runnable r, long uptimeMillis)
:此方法與post()
類似,但它允許你指定回調執行的時間(以毫秒為單位)。