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>标记,则对象在从此函数返回后不再处于活动状态。</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 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

适用于