Handler Classe

Definizione

Un gestore consente di inviare ed elaborare ed elaborare Message oggetti Runnable associati a un thread.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
Ereditarietà
Handler
Derivato
Attributi

Commenti

Un gestore consente di inviare ed elaborare ed elaborare Message oggetti Runnable associati a un thread.MessageQueue Ogni istanza del gestore è associata a un singolo thread e alla coda di messaggi del thread. Quando si crea un nuovo gestore, viene associato a un oggetto Looper. Recapita i messaggi e i messaggi eseguibili alla coda di messaggi di Looper ed eseguirli nel thread di Looper.

Esistono due usi principali per un gestore: (1) per pianificare i messaggi e i runnable da eseguire in un determinato momento in futuro; e (2) per accodare un'azione da eseguire su un thread diverso da quello dell'utente.

La pianificazione dei messaggi viene eseguita con i #postmetodi , #postAtTime(Runnable, long)#postDelayed, #sendEmptyMessage#sendMessage, #sendMessageAtTimee #sendMessageDelayed . Le <versioni em>post</em> consentono di accodare gli oggetti Runnable da chiamare dalla coda di messaggi al momento della ricezione. Le <versioni em>sendMessage</em> consentono di accodare un Message oggetto contenente un bundle di dati che verrà elaborato dal metodo del #handleMessage gestore (che richiede l'implementazione di una sottoclasse di Handler).

Quando si pubblica o si invia a un gestore, è possibile consentire l'elaborazione dell'elemento non appena la coda dei messaggi è pronta a farlo oppure specificare un ritardo prima che venga elaborato o tempo assoluto per l'elaborazione. Gli ultimi due consentono di implementare timeout, tick e altri comportamenti basati sui tempi.

Quando viene creato un processo per l'applicazione, il thread principale è dedicato all'esecuzione di una coda di messaggi che si occupa della gestione degli oggetti applicazione di primo livello (attività, ricevitori di trasmissione e così via) e di tutte le finestre create. È possibile creare thread personalizzati e comunicare con il thread principale dell'applicazione tramite un gestore. A tale scopo, chiamare gli stessi <metodi em>post</em> o <em>sendMessage</em> di prima, ma dal nuovo thread. L'oggetto Runnable o Message specificato verrà quindi pianificato nella coda dei messaggi del gestore ed elaborato quando appropriato.

Documentazione java per android.os.Handler.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Costruttori

Nome Descrizione
Handler()

Il costruttore predefinito associa questo gestore all'oggetto Looper per il thread corrente.

Handler(Action<Message>)

Inizializza una nuova istanza della classe Handler.

Handler(Handler+ICallback)

Il costruttore associa questo gestore all'oggetto Looper per il thread corrente e accetta un'interfaccia di callback in cui è possibile gestire i messaggi.

Handler(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

Handler(Looper, Handler+ICallback)

Usare l'oggetto fornito Looper anziché quello predefinito e eseguire un'interfaccia di callback in cui gestire i messaggi.

Handler(Looper)

Usare l'oggetto fornito Looper anziché quello predefinito.

Proprietà

Nome Descrizione
Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
JniPeerMembers

Fornisce metadati del membro peer JNI per questo tipo.

Looper

Ottiene il valore Looper.

PeerReference

Ottiene il riferimento all'oggetto JNI per questo peer Java.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

Metodi

Nome Descrizione
Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
CreateAsync(Looper, Handler+ICallback)

Creare un nuovo gestore i cui messaggi inviati e eseguibili non sono soggetti a barriere di sincronizzazione, ad esempio display vsync.

CreateAsync(Looper)

Creare un nuovo gestore i cui messaggi inviati e eseguibili non sono soggetti a barriere di sincronizzazione, ad esempio display vsync.

DispatchMessage(Message)

Gestire i messaggi di sistema qui.

Dispose()

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Dispose(Boolean)

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Dump(IPrinter, String)

Scrive lo stato dell'oggetto nell'output fornito.

DumpAsync(IPrinter, String)

Esegue in modo asincrono l'operazione corrispondente.

Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
GetMessageName(Message)

Restituisce una stringa che rappresenta il nome del messaggio specificato.

HandleMessage(Message)

Per ricevere messaggi, è necessario implementare le sottoclassi.

HasCallbacks(IRunnable)

Controllare se sono presenti post in sospeso di messaggi con callback r nella coda dei messaggi.

HasMessages(Int32, Object)

Controllare se sono presenti post in sospeso di messaggi con codice 'what' e il cui obj è 'object' nella coda dei messaggi.

HasMessages(Int32)

Controllare se sono presenti post in sospeso di messaggi con codice "what" nella coda dei messaggi.

JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
ObtainMessage()

Restituisce un nuovo android.os.Message Message oggetto dal pool di messaggi globale.

ObtainMessage(Int32, Int32, Int32, Object)

Uguale a #obtainMessage(), ad eccezione del fatto che imposta anche i valori what, obj, arg1 e arg2 nel messaggio restituito.

ObtainMessage(Int32, Int32, Int32)

Uguale a #obtainMessage(), ad eccezione del fatto che imposta anche i membri di arg1 e arg2 del messaggio restituito.

ObtainMessage(Int32, Object)

Uguale a #obtainMessage(), ad eccezione del fatto che imposta anche i membri e obj del messaggio restituito.

ObtainMessage(Int32)

Uguale a #obtainMessage(), ad eccezione del fatto che imposta anche il membro del messaggio restituito.

Post(Action)

Aggiunge l'oggetto eseguibile alla coda di messaggi del gestore.

Post(IRunnable)

Determina l'aggiunta di Runnable r alla coda di messaggi.

PostAtFrontOfQueue(Action)

Pubblica l'oggetto eseguibile per l'iterazione successiva della coda di messaggi del gestore.

PostAtFrontOfQueue(IRunnable)

Invia un messaggio a un oggetto che implementa Runnable.

PostAtTime(Action, Int64)

Invia il runnable per l'esecuzione al tempo di attività specificato.

PostAtTime(Action, Object, Int64)

Invia il runnable per l'esecuzione al tempo di attività specificato.

PostAtTime(IRunnable, Int64)

Fa sì che runnable r venga aggiunto alla coda dei messaggi, che deve essere eseguito in un momento specifico specificato da <var>uptimeMillis</var>.

PostAtTime(IRunnable, Object, Int64)

Fa sì che runnable r venga aggiunto alla coda dei messaggi, che deve essere eseguito in un momento specifico specificato da <var>uptimeMillis</var>.

PostDelayed(Action, Int64)

Inserisce il runnable da eseguire dopo il ritardo specificato.

PostDelayed(IRunnable, Int64)

Fa sì che l'oggetto Runnable r venga aggiunto alla coda dei messaggi, che deve essere eseguito dopo il periodo di tempo specificato.

PostDelayed(IRunnable, Object, Int64)

Fa sì che l'oggetto Runnable r venga aggiunto alla coda dei messaggi, che deve essere eseguito dopo il periodo di tempo specificato.

RemoveCallbacks(Action, Object)

Rimuove i callback in sospeso per l'oggetto eseguibile specificato.

RemoveCallbacks(Action)

Rimuove i callback in sospeso per l'oggetto eseguibile specificato.

RemoveCallbacks(IRunnable, Object)

Rimuovere eventuali post in sospeso di Runnable <var>r</var> con object <var>token</var> presenti nella coda dei messaggi.

RemoveCallbacks(IRunnable)

Rimuovere tutti i post in sospeso di Runnable r presenti nella coda dei messaggi.

RemoveCallbacksAndMessages(Object)

Rimuovere eventuali post in sospeso di callback e messaggi inviati il cui <var obj>/var< è >var<token>/var<>.

RemoveMessages(Int32, Object)

Rimuovere eventuali post in sospeso di messaggi con codice 'what' e il cui obj è 'object' che si trovano nella coda dei messaggi.

RemoveMessages(Int32)

Rimuovere tutti i post in sospeso dei messaggi con codice "what" che si trovano nella coda dei messaggi.

SendEmptyMessage(Int32)

Invia un messaggio contenente solo il valore.

SendEmptyMessageAtTime(Int32, Int64)

Invia un messaggio contenente solo il valore da recapitare in un momento specifico.

SendEmptyMessageDelayed(Int32, Int64)

Invia un messaggio contenente solo il valore da recapitare dopo il periodo di tempo specificato.

SendMessage(Message)

Inserisce un messaggio alla fine della coda di messaggi dopo tutti i messaggi in sospeso prima dell'ora corrente.

SendMessageAtFrontOfQueue(Message)

Accodare un messaggio nella parte anteriore della coda di messaggi, da elaborare nella successiva iterazione del ciclo di messaggi.

SendMessageAtTime(Message, Int64)

Accodare un messaggio nella coda di messaggi dopo tutti i messaggi in sospeso prima del tempo assoluto (in millisecondi) <var>uptimeMillis</var>.

SendMessageDelayed(Message, Int64)

Accoda un messaggio nella coda dei messaggi dopo tutti i messaggi in sospeso prima (ora corrente + delayMillis).

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
ToArray<T>()

Crea una matrice gestita da questo wrapper di matrice Java.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Annulla la registrazione di questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IJavaPeerable.Disposed()

Notifica al runtime di interoperabilità che il peer gestito è stato eliminato.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Rilascia questo Java peer a meno che non venga conservato da un altro riferimento gestito.

(Ereditato da Object)
IJavaPeerable.Finalized()

Notifica al runtime di interoperabilità che il peer gestito è stato finalizzato.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Ottiene lo stato che descrive la relazione tra questo peer gestito e il relativo riferimento JNI.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Imposta il codice hash dell'identità di interoperabilità per questo Java peer.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Imposta lo stato peer gestito e JNI per questo peer Java.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Imposta il riferimento all'oggetto JNI usato da questo peer gestito.

(Ereditato da Object)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Un gestore consente di inviare ed elaborare ed elaborare Message oggetti Runnable associati a un thread.MessageQueue

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a