BroadcastReceiver.OnReceive(Context, Intent) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se llama a este método cuando BroadcastReceiver recibe una difusión de intención.
[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
Parámetros
- context
- Context
Contexto en el que se ejecuta el receptor.
- intent
- Intent
Intención que se recibe.
- Atributos
Comentarios
Se llama a este método cuando BroadcastReceiver recibe una difusión de intención. Durante este tiempo, puede usar los otros métodos de BroadcastReceiver para ver o modificar los valores de resultado actuales. Este método siempre se llama dentro del subproceso principal de su proceso, a menos que se le pida explícitamente que se programe en otro subproceso mediante android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)
. Cuando se ejecuta en el subproceso principal, nunca debe realizar operaciones de ejecución prolongada en él (hay un tiempo de espera de 10 segundos que el sistema permite antes de considerar que el receptor se bloqueará y se eliminará un candidato). No se puede iniciar un cuadro de diálogo emergente en la implementación de onReceive().
<b>Si este BroadcastReceiver fue lanzado a través de un < receptor> tag, el objeto ya no está activo después de volver de esta función.</b> Esto significa que no debe realizar ninguna operación que devuelva un resultado de forma asincrónica. Si necesita realizar cualquier trabajo de seguimiento en segundo plano, programe un android.app.job.JobService
con android.app.job.JobScheduler
.
Si desea interactuar con un servicio que ya se está ejecutando y enlazado previamente mediante android.content.Context#bindService(Intent, ServiceConnection, int) bindService()
, puede usar #peekService
.
Se garantiza que los filtros de intención usados en y en android.content.Context#registerReceiver
los manifiestos de aplicación son <em>not</em> para ser exclusivos. Son sugerencias para el sistema operativo sobre cómo encontrar destinatarios adecuados. Es posible que los remitentes obliguan la entrega a destinatarios específicos, pasando la resolución de filtros. Por este motivo, #onReceive(Context, Intent) onReceive()
las implementaciones solo deben responder a acciones conocidas, ignorando las intenciones inesperadas que pueden recibir.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.