Язык

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
Наследование
Производный
Атрибуты

Комментарии

Обработчик позволяет отправлять и обрабатывать 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 ).

При публикации или отправке в обработчик можно разрешить обработку элемента, как только очередь сообщений готова к этому, или указать задержку перед обработкой или абсолютным временем обработки. Последние два позволяют реализовать время ожидания, галочки и другое поведение на основе времени.

При создании процесса для приложения основной поток предназначен для запуска очереди сообщений, которая заботится об управлении объектами приложения верхнего уровня (действиями, широковещательными приемниками и т. д.) и любыми создаваемыми окнами. Вы можете создавать собственные потоки и взаимодействовать с основным потоком приложения с помощью обработчика. Для этого вызовите те же <методы em>post</em> или <em>sendMessage</em> , что и раньше, но из нового потока. Затем заданный параметр Runnable или Message будет запланирован в очереди сообщений обработчика и обрабатывается при необходимости.

<Рекомендации по производительности h2>при использовании Handler</h2>

Убедитесь, что методы Handler "has" и "remove" могут быть очень медленными, так как эти операции сканируют всю очередь ожидающих сообщений. Если в базовой LooperMessageQueue базе есть много ожидающих сообщений, это может быть дорого.

<ul><li>Вместо удаления сообщения или обратного вызова для отмены ожидающей операции рекомендуется задать флаг для указания отмены и проверки флага перед продолжением. <li>Вместо проверки наличия в очереди сообщения или обратного вызова для поиска, если ожидающая операция еще не произошла, рассмотрите возможность установки флага, указывающего, что она началась. </ul>

См java.util.concurrent . стандартные примитивы параллелизма.

Java документации по android.os.Handler.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя. Описание
Handler()

Конструктор по умолчанию связывает этот обработчик с текущим потоком Looper .

Handler(Action<Message>)

Инициализирует новый экземпляр класса Handler.

Handler(Handler+ICallback)

Конструктор связывает этот обработчик с Looper текущим потоком и принимает интерфейс обратного вызова, в котором можно обрабатывать сообщения.

Handler(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Handler(Looper, Handler+ICallback)

Используйте предоставленный Looper вместо по умолчанию интерфейс обратного вызова, в котором обрабатываются сообщения.

Handler(Looper)

Используйте предоставленный Looper вместо значения по умолчанию.

Свойства

Имя. Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

(Унаследовано от JavaObject)
JniPeerMembers

Предоставляет метаданные однорангового члена JNI для этого типа.

Looper

Возвращает значение Looper.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Имя. Описание
Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

(Унаследовано от JavaObject)
CreateAsync(Looper, Handler+ICallback)

Создайте обработчик, опубликованные сообщения и выполняемые элементы, не подвержены барьерам синхронизации, таким как отображение vsync.

CreateAsync(Looper)

Создайте обработчик, опубликованные сообщения и выполняемые элементы, не подвержены барьерам синхронизации, таким как отображение vsync.

DispatchMessage(Message)

Обработайте системные сообщения здесь.

Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

(Унаследовано от JavaObject)
Dump(IPrinter, String)

Записывает состояние этого объекта в предоставленные выходные данные.

DumpAsync(IPrinter, String)

Асинхронно выполняет соответствующую операцию.

Equals(Object)

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
GetHashCode()

Возвращает хэш-значение кода для объекта.

(Унаследовано от Object)
GetMessageName(Message)

Возвращает строку, представляющую имя указанного сообщения.

HandleMessage(Message)

Подклассы должны реализовать это для получения сообщений.

HasCallbacks(IRunnable)

Проверьте наличие ожидающих сообщений с обратным вызовом r в очереди сообщений.

HasMessages(Int32, Object)

Проверьте наличие ожидающих сообщений с кодом what и obj которого является "object" в очереди сообщений.

HasMessages(Int32)

Проверьте наличие ожидающих сообщений с кодом "что" в очереди сообщений.

JavaFinalize()
Устаревшие.

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
ObtainMessage()

Возвращает новый из android.os.Message Message глобального пула сообщений.

ObtainMessage(Int32, Int32, Int32, Object)

#obtainMessage()Аналогично, за исключением того, что он также задает значения, obj, arg1 и arg2 для возвращаемого сообщения.

ObtainMessage(Int32, Int32, Int32)

#obtainMessage()То же самое, что, за исключением того, что он также задает элементы arg1 и arg2 возвращаемого сообщения.

ObtainMessage(Int32, Object)

#obtainMessage()Аналогично, за исключением того, что он также задает элементы того, что и obj членов возвращаемого сообщения.

ObtainMessage(Int32)

#obtainMessage()Аналогично, за исключением того, что он также задает элемент возвращаемого сообщения.

Post(Action)

Добавляет запуск в очередь сообщений этого обработчика.

Post(IRunnable)

Вызывает добавление runnable r в очередь сообщений.

PostAtFrontOfQueue(Action)

Публикует запуск для следующей итерации очереди сообщений этого обработчика.

PostAtFrontOfQueue(IRunnable)

Публикует сообщение в объект, реализующий Runnable.

PostAtTime(Action, Int64)

Публикует запускаемую программу, выполняемую в указанное время простоя.

PostAtTime(Action, Object, Int64)

Публикует запускаемую программу, выполняемую в указанное время простоя.

PostAtTime(IRunnable, Int64)

Вызывает добавление runnable r в очередь сообщений в определенное время, заданное <var>uptimeMillis</var>.

PostAtTime(IRunnable, Object, Int64)

Вызывает добавление runnable r в очередь сообщений в определенное время, заданное <var>uptimeMillis</var>.

PostDelayed(Action, Int64)

Публикует запускаемый объект после указанной задержки.

PostDelayed(IRunnable, Int64)

Вызывает добавление runnable r в очередь сообщений после указанного периода времени.

PostDelayed(IRunnable, Object, Int64)

Вызывает добавление runnable r в очередь сообщений после указанного периода времени.

RemoveCallbacks(Action, Object)

Удаляет ожидающие обратные вызовы для указанного запуска.

RemoveCallbacks(Action)

Удаляет ожидающие обратные вызовы для указанного запуска.

RemoveCallbacks(IRunnable, Object)

Удалите все ожидающие записи runnable <var>r</var с помощью маркера> или var<> объекта<>, которые находятся в очереди сообщений.

RemoveCallbacks(IRunnable)

Удалите все ожидающие записи runnable r, находящиеся в очереди сообщений.

RemoveCallbacksAndMessages(Object)

Удалите все ожидающие записи обратных вызовов и отправленные сообщения, чьи var obj</var — >var<token>/var<>.<>

RemoveMessages(Int32, Object)

Удалите все ожидающие записи сообщений с кодом "what" и чьи obj является "объектом", которые находятся в очереди сообщений.

RemoveMessages(Int32)

Удалите все ожидающие записи сообщений с кодом "что" в очереди сообщений.

SendEmptyMessage(Int32)

Отправляет сообщение, содержащее только значение.

SendEmptyMessageAtTime(Int32, Int64)

Отправляет сообщение, содержащее только то, какое значение будет доставлено в определенное время.

SendEmptyMessageDelayed(Int32, Int64)

Отправляет сообщение, содержащее только значение, которое должно быть доставлено после указанного периода времени.

SendMessage(Message)

Отправляет сообщение в конец очереди сообщений после всех ожидающих сообщений до текущего времени.

SendMessageAtFrontOfQueue(Message)

Введите сообщение перед очередью сообщений, которое будет обработано в следующей итерации цикла сообщений.

SendMessageAtTime(Message, Int64)

Заклоните сообщение в очередь сообщений после всех ожидающих сообщений до абсолютного времени (в миллисекундах) <var>uptimeMillis</var>.

SendMessageDelayed(Message, Int64)

Заквяжите сообщение в очередь сообщений после всех ожидающих сообщений до (текущее время и задержкаMillis).

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

(Унаследовано от JavaObject)
ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя. Описание
IJavaPeerable.Disposed()

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

(Унаследовано от JavaObject)

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Обработчик позволяет отправлять и обрабатывать Message и запускать объекты, связанные с потоком MessageQueue.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к