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 для просмотра или изменения текущих результирующих значений. Этот метод всегда вызывается в потоке main его процесса, если вы явно не запросили его на планирование в другом потоке с помощью android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)
. При выполнении в потоке main никогда не следует выполнять в нем длительные операции (время ожидания в 10 секунд, которое система разрешает, прежде чем считать, что получатель будет заблокирован и кандидат будет убит). Вы не можете запустить всплывающее диалоговое окно в реализации onReceive().
<b>Если этот BroadcastReceiver был запущен через < receiver> tag, то объект больше не активен после возврата из этой функции.</b> . Это означает, что не следует выполнять никаких операций, возвращающих результат асинхронно. Если вам нужно выполнить фоновую работу, запланируйте с android.app.job.JobService
android.app.job.JobScheduler
помощью .
Если вы хотите взаимодействовать со службой, которая уже запущена и ранее привязана с помощью android.content.Context#bindService(Intent, ServiceConnection, int) bindService()
, можно использовать #peekService
.
Фильтры намерений, используемые в android.content.Context#registerReceiver
манифестах приложений и в манифестах приложений, не>< являются <>исключающими. Они представляют собой подсказки операционной системе о том, как найти подходящих получателей. Отправители могут принудительно выполнять доставку определенным получателям, минуя разрешение фильтра. По этой причине #onReceive(Context, Intent) onReceive()
реализации должны реагировать только на известные действия, игнорируя любые непредвиденные намерения, которые они могут получить.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.