BroadcastReceiver.OnReceive(Context, Intent) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当 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.JobService
android.app.job.JobScheduler
安排 。
如果希望与已在运行并且以前使用 android.content.Context#bindService(Intent, ServiceConnection, int) bindService()
绑定的服务进行交互,可以使用 #peekService
。
在 和 应用程序清单中使用的android.content.Context#registerReceiver
意向筛选器不<<>>保证是排他的。 它们是操作系统有关如何查找合适收件人的提示。 发件人可以绕过筛选器解析,强制向特定收件人传递。 因此, #onReceive(Context, Intent) onReceive()
实现应仅响应已知操作,忽略它们可能收到的任何意外意向。
此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。