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>如果此 BroadcastReceiver 是通过 < 启动的receiver>标记,然后对象在从此函数返回后不再处于活动状态。</b> 这意味着不应执行以异步方式返回结果的任何操作。 如果需要执行任何后续后台工作,请安排一个 android.app.job.JobServiceandroid.app.job.JobScheduler

如果要与已运行且以前已绑定的服务 android.content.Context#bindService(Intent, ServiceConnection, int) bindService()进行交互,可以使用 #peekService

应用程序清单中使用的android.content.Context#registerReceiver意向筛选器不<<>>保证是独占的。 它们是操作系统有关如何查找合适收件人的提示。 发件人可以强制传递到特定收件人,绕过筛选器解析。 因此, #onReceive(Context, Intent) onReceive() 实现应仅响应已知操作,忽略它们可能收到的任何意外意向。

适用于 . 的 android.content.BroadcastReceiver.onReceive(android.content.Context, android.content.Intent)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于