Share via


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 可執行物件。 每個處理常式實例都會與單一線程和該執行緒的訊息佇列相關聯。 當您建立新的處理常式時,它會系結至 Looper 。 它會將訊息和可執行專案傳遞給該 Looper 的訊息佇列,並在該 Looper 的執行緒上執行這些訊息。

處理常式有兩個主要用途: (1) 來排程未來某個時間點執行的訊息和可執行專案;和 (2) 將動作排入佇列,以在您自己的執行緒上執行。

排程訊息是使用 #post#postAtTime(Runnable, long)#postDelayed#sendEmptyMessage#sendMessage#sendMessageAtTime#sendMessageDelayed 方法來完成。 em post/em > 版本可讓您在收到 < Runnable 物件時排入佇列,而 em > sendMessage < /em > 版本可讓您將 Message 包含處理常式 #handleMessage 方法所處理之資料組合的物件排入佇列, (要求您實作 Handler) 的子類別。 <><

張貼或傳送至處理常式時,您可以允許在訊息佇列準備好執行此動作時立即處理專案,或指定處理之前或絕對時間的延遲。 後者兩個可讓您實作逾時、刻度和其他以時間為基礎的行為。

為您的應用程式建立進程時,其主執行緒專用於執行訊息佇列,負責管理最上層應用程式物件 (活動、廣播接收者等) 及其建立的任何視窗。 您可以建立自己的執行緒,並透過處理常式與主要應用程式執行緒通訊。 這是藉由呼叫與之前相同的 < em > post < /em > 或 < em > sendMessage < /em > 方法來完成,但會從新的執行緒呼叫。 接著,指定的 Runnable 或 Message 會排程在處理常式的訊息佇列中,並在適當時進行處理。

android.os.Handler JAVA 檔。

此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據中所述的詞彙使用。

建構函式

Handler()

預設建構函式會將這個處理常式與 Looper 目前線程的 建立關聯。

Handler(Action<Message>)

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

Handler(Handler+ICallback)

建構函式會將這個處理常式與 Looper 目前線程的 建立關聯,並接受回呼介面,您可以在其中處理訊息。

Handler(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 標記法時所使用的建構函式;由執行時間呼叫。

Handler(Looper)

使用提供的 Looper ,而不是預設的 。

Handler(Looper, Handler+ICallback)

使用提供的 Looper ,而不是預設介面,並採用回呼介面來處理訊息。

屬性

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 基礎結構,並不適合直接從您的程式碼使用。

方法

Clone()

建立並傳回這個 物件的複本。

(繼承來源 Object)
CreateAsync(Looper)

建立新的處理常式,其張貼的訊息和可執行專案不受同步處理屏障,例如顯示 vsync。

CreateAsync(Looper, Handler+ICallback)

建立新的處理常式,其張貼的訊息和可執行專案不受同步處理屏障,例如顯示 vsync。

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)

檢查訊息佇列中是否有任何暫止的訊息貼文,其程式碼為 'what'。

HasMessages(Int32, Object)

檢查是否有任何暫止的訊息貼文,其程式碼為 'what' 且其 obj 為訊息佇列中的 'object'。

JavaFinalize()

當垃圾收集判斷物件沒有其他參考時,由物件上的垃圾收集行程呼叫。

(繼承來源 Object)
Notify()

喚醒正在等候此物件的監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
ObtainMessage()

從全域消息集區傳回新的 android.os.Message Message

ObtainMessage(Int32)

#obtainMessage()與 相同,不同之處在于它也會設定傳回之 Message 的成員。

ObtainMessage(Int32, Int32, Int32)

#obtainMessage()與 相同,不同之處在于它也會設定傳回訊息的 what、arg1 和 arg2 成員。

ObtainMessage(Int32, Int32, Int32, Object)

#obtainMessage()與 相同,不同之處在于它也會在傳回的 Message 上設定 what、obj、arg1 和 arg2 值。

ObtainMessage(Int32, Object)

#obtainMessage()與 相同,不同之處在于它也會設定傳回訊息的內容和 obj 成員。

Post(Action)

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

Post(IRunnable)

導致 Runnable r 新增至訊息佇列。

PostAtFrontOfQueue(Action)

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

PostAtFrontOfQueue(IRunnable)

將訊息張貼至實作 Runnable 的物件。

PostAtTime(Action, Int64)

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

PostAtTime(Action, Object, Int64)

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

PostAtTime(IRunnable, Int64)

導致 Runnable r 新增至訊息佇列,在特定時間由 < var > uptimeMillis < /var > 指定執行。

PostAtTime(IRunnable, Object, Int64)

導致 Runnable r 新增至訊息佇列,在特定時間由 < var > uptimeMillis < /var > 指定執行。

PostDelayed(Action, Int64)

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

PostDelayed(IRunnable, Int64)

使 Runnable r 新增至訊息佇列,在指定的時間長度過後執行。

PostDelayed(IRunnable, Object, Int64)

使 Runnable r 新增至訊息佇列,在指定的時間長度過後執行。

RemoveCallbacks(Action)

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

RemoveCallbacks(Action, Object)

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

RemoveCallbacks(IRunnable)

移除訊息佇列中 Runnable r 的任何擱置文章。

RemoveCallbacks(IRunnable, Object)

使用訊息佇列中的物件 var token < /var 移除 Runnable < var >> r < /var >> 的任何擱置文章。 <

RemoveCallbacksAndMessages(Object)

移除回呼的任何擱置文章,並傳送 var obj < /var > 為 < var token < /var >> 的訊息 < 。 >

RemoveMessages(Int32)

使用訊息佇列中的程式碼 'what' 移除任何暫止的訊息貼文。

RemoveMessages(Int32, Object)

移除含有程式碼 'what' 且其 obj 為訊息佇列中 'object' 的任何暫止訊息貼文。

SendEmptyMessage(Int32)

傳送只包含值之訊息。

SendEmptyMessageAtTime(Int32, Int64)

傳送只包含要在特定時間傳遞之值的訊息。

SendEmptyMessageDelayed(Int32, Int64)

傳送只包含所指定時間量之後要傳遞之值的訊息。

SendMessage(Message)

在目前時間之前,將所有擱置的訊息推送至訊息佇列結尾。

SendMessageAtFrontOfQueue(Message)

將訊息加入訊息佇列前端的佇列,以在訊息迴圈的下一個反復專案上處理。

SendMessageAtTime(Message, Int64)

在絕對時間之前,將訊息加入訊息佇列中,以毫秒 < 為單位 (,) var > uptimeMillis < /var > 。

SendMessageDelayed(Message, Int64)

在目前時間 + delayMillis) (之前,將所有擱置的訊息加入訊息佇列中。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

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

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

(繼承來源 Object)
Wait()

讓目前的執行緒等到喚醒為止,通常是藉由 < em > notified < /em > 或 < em > interrupted < /em > 來喚醒。

(繼承來源 Object)
Wait(Int64)

讓目前的執行緒等到喚醒為止,通常是 < 透過 em > notified < /em 或 em > interrupted < /em >> ,或 < 直到經過一定數量的即時為止。

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

讓目前的執行緒等到喚醒為止,通常是 < 透過 em > notified < /em 或 em > interrupted < /em >> ,或 < 直到經過一定數量的即時為止。

(繼承來源 Object)

明確介面實作

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)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

GetJniTypeName(IJavaPeerable)

處理常式可讓您傳送和處理 Message 與執行緒 相關聯的 MessageQueue 可執行物件。

適用於