Handler 類別

定義

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

[Android.Runtime.Register("android/os/Handler", DoNotGenerateAcw=true)]
public class Handler : Java.Lang.Object
[<Android.Runtime.Register("android/os/Handler", DoNotGenerateAcw=true)>]
type Handler = class
    inherit Object
繼承
Handler
衍生
屬性

備註

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue。 每個處理程序實例都與單一執行緒及其訊息佇列相關聯。 當你建立新的 Handler 時,它會綁定到 Looper。 它會將訊息和可執行程式傳送到該 Looper 的訊息佇列,並在該 Looper 的執行緒中執行。

處理器有兩個主要用途:(1) 排程未來某個時間點執行的訊息與可執行物件;以及 (2) 將執行任務排隊到與你執行的執行緒不同。

排程訊息透過 #post#postAtTime(Runnable, long)#sendMessage#sendMessageAtTime#postDelayed#sendEmptyMessage#sendMessageDelayed 方法來完成。 em post/em> 版本允許你為可執行的物件排隊,當訊息佇列收到時呼叫它們;<em>sendMessage</em> 版本允許你為包含一包資料的物件排隊Message,該資料將由 Handler #handleMessage 的方法處理(需要實作 Handler 的子類別)。<><

在發送或發送給處理器時,你可以選擇在訊息佇列準備好時就讓項目被處理,或指定處理前的延遲或絕對處理時間。 後兩者允許你實作逾時、tick 及其他基於時間的行為。

當你的應用程式建立一個程序時,其主執行緒會專門執行訊息佇列,負責管理頂層應用程式物件(活動、廣播接收器等)及其所建立的任何視窗。 你可以建立自己的執行緒,並透過處理器與主應用程式執行緒溝通。 這是透過呼叫與之前相同的 <em>post</em> 或 <em>sendMessage</em> 方法來完成,但來自你的新串。 該可執行或訊息會被排程進入處理器的訊息佇列,並在適當時處理。

Java 文件 android.os.Handler

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
Handler()

預設建構子會將此處理器與當前執行緒的 關聯 Looper

Handler(Action<Message>)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

Handler(Handler+ICallback)

建構子會將此處理器與 Looper 當前執行緒的 關聯,並採用回調介面,在那裡你可以處理訊息。

Handler(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

Handler(Looper, Handler+ICallback)

使用提供的 Looper 介面代替預設,並採用回調介面來處理訊息。

Handler(Looper)

請使用提供的 Looper ,而非預設的。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
JniIdentityHashCode

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
JniPeerMembers

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

Looper
PeerReference

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

方法

名稱 Description
Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
CreateAsync(Looper, Handler+ICallback)

建立一個新的處理器,其發布的訊息與可執行程式不受同步障礙(如顯示垂直同步)影響。

CreateAsync(Looper)

建立一個新的處理器,其發布的訊息與可執行程式不受同步障礙(如顯示垂直同步)影響。

DispatchMessage(Message)

這裡處理系統訊息。

Dispose()

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
Dispose(Boolean)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
Dump(IPrinter, String)
DumpAsync(IPrinter, String)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
GetMessageName(Message)

回傳代表指定訊息名稱的字串。

HandleMessage(Message)

子類別必須實作此功能才能接收訊息。

HasCallbacks(IRunnable)

檢查訊息佇列中是否有回覆 r 的待處理貼文。

HasMessages(Int32, Object)

檢查訊息佇列中是否有代碼為「what」且目標為「object」的待處理訊息貼文。

HasMessages(Int32)

檢查訊息佇列中是否有包含代碼「what」的待發訊息貼文。

JavaFinalize()

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
ObtainMessage()

從全域訊息池回傳新訊息 android.os.Message Message

ObtainMessage(Int32, Int32, Int32, Object)

#obtainMessage()類似,但它還會在回傳的訊息上設定 what、obj、arg1 和 arg2 的值。

ObtainMessage(Int32, Int32, Int32)

#obtainMessage()類似,但同時設定回傳訊息的 what、arg1 和 arg2 成員。

ObtainMessage(Int32, Object)

#obtainMessage()類似,但同時設定 what 與 obj 成員。

ObtainMessage(Int32)

#obtainMessage()同理,但同時設定回傳訊息的 THE 成員。

Post(Action)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

Post(IRunnable)

會讓可執行的 r 被加入訊息佇列。

PostAtFrontOfQueue(Action)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

PostAtFrontOfQueue(IRunnable)

向實作 Runnable 的物件發布訊息。

PostAtTime(Action, Int64)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

PostAtTime(Action, Object, Int64)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

PostAtTime(IRunnable, Int64)

會將可跑的 r 加入訊息佇列,並於 var<uptimeMillis>/var< 指定>的特定時間執行。

PostAtTime(IRunnable, Object, Int64)

會將可跑的 r 加入訊息佇列,並於 var<uptimeMillis>/var< 指定>的特定時間執行。

PostDelayed(Action, Int64)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

PostDelayed(IRunnable, Int64)

會將可執行的 r 加入訊息佇列,並在指定時間後執行。

PostDelayed(IRunnable, Object, Int64)

會將可執行的 r 加入訊息佇列,並在指定時間後執行。

RemoveCallbacks(Action, Object)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

RemoveCallbacks(Action)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

RemoveCallbacks(IRunnable, Object)

移除訊息隊列中任何 Runnable <var><> 與 Object <var>token</var> 的待發貼文。

RemoveCallbacks(IRunnable)

移除留言佇列中 Runnable r 待處理的貼文。

RemoveCallbacksAndMessages(Object)

移除所有待處理的回撥貼文,以及發送 var obj</var> 為 <var>token</var> 的訊息<。>

RemoveMessages(Int32, Object)

移除訊息佇列中包含代碼為「what」且目標為「object」的待發訊息。

RemoveMessages(Int32)

移除訊息佇列中帶有代碼「what」的待發訊息貼文。

SendEmptyMessage(Int32)

發送僅包含 what 值的訊息。

SendEmptyMessageAtTime(Int32, Int64)

發送只包含「什麼」值的訊息,並指定於特定時間送達。

SendEmptyMessageDelayed(Int32, Int64)

發送僅包含「what」值的訊息,並在指定時間後交付。

SendMessage(Message)

在所有待處理訊息之後,將訊息推送到訊息隊列的末端。

SendMessageAtFrontOfQueue(Message)

將訊息排隊列在訊息佇列的最前端,待在訊息迴圈的下一次迭代中處理。

SendMessageAtTime(Message, Int64)

在所有待處理訊息後,將訊息排隊到訊息隊列,且在絕對時間(以毫秒為單位)<>之前,var uptimeMillis</var>。

SendMessageDelayed(Message, Int64)

在所有待處理訊息之後(當前時間 + 延遲毫厘)之後,將訊息排入訊息佇列。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
ToArray<T>()

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
IJavaPeerable.DisposeUnlessReferenced()

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
IJavaPeerable.Finalized()

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
IJavaPeerable.JniManagedPeerState

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

(繼承來源 Object)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

處理器允許你傳送並處理 Message 與執行緒 . 相關聯的可執行物件 MessageQueue

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於