Поделиться через


BroadcastReceiver.OnReceive(Context, Intent) Метод

Определение

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

[Android.Runtime.Register("onReceive", "(Landroid/content/Context;Landroid/content/Intent;)V", "GetOnReceive_Landroid_content_Context_Landroid_content_Intent_Handler")]
public abstract void OnReceive (Android.Content.Context? context, Android.Content.Intent? intent);
[<Android.Runtime.Register("onReceive", "(Landroid/content/Context;Landroid/content/Intent;)V", "GetOnReceive_Landroid_content_Context_Landroid_content_Intent_Handler")>]
abstract member OnReceive : Android.Content.Context * Android.Content.Intent -> unit

Параметры

context
Context

Контекст, в котором выполняется получатель.

intent
Intent

Полученное намерение.

Атрибуты

Комментарии

Этот метод вызывается, когда широковещательный объект BroadcastReceiver получает широковещательный канал "Намерение". В течение этого времени вы можете использовать другие методы в BroadcastReceiver для просмотра и изменения текущих значений результатов. Этот метод всегда вызывается в основном потоке его процесса, если вы явно не попросили его запланировать в другом потоке с помощью android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler). Когда он выполняется в основном потоке, в нем никогда не следует выполнять длительные операции (время ожидания составляет 10 секунд, которое система разрешает, прежде чем рассматривать приемник, который будет заблокирован, и кандидат, который будет убит). Вы не можете запустить всплывающее диалоговое окно в реализации onReceive().

<b>, если этот широковещательныйreceiver был запущен через < приемник> Тег, а затем объект больше не жив после возвращения из этой функции.</b> Это означает, что не следует выполнять никаких операций, возвращающих результат асинхронно. Если вам нужно выполнить все последующие фоновые действия, запланируйте егоandroid.app.job.JobService.android.app.job.JobScheduler

Если вы хотите взаимодействовать со службой, которая уже запущена и ранее привязана с помощью android.content.Context#bindService(Intent, ServiceConnection, int) bindService(), можно использовать #peekService.

Фильтры намерений, используемые в android.content.Context#registerReceiver манифестах <>приложений, не< /em>, являются эксклюзивными. Они намеки на операционную систему о том, как найти подходящих получателей. Для отправителей можно принудительно отправлять определенным получателям, обходя разрешение фильтра. По этой причине #onReceive(Context, Intent) onReceive() реализации должны реагировать только на известные действия, игнорируя любые непредвиденные намерения, которые они могут получать.

Документация по Java для android.content.BroadcastReceiver.onReceive(android.content.Context, android.content.Intent).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

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