BroadcastReceiver.OnReceive(Context, Intent) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Cette méthode est appelée lorsque BroadcastReceiver reçoit une diffusion d’intention.
[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
Paramètres
- context
- Context
Contexte dans lequel le récepteur est en cours d’exécution.
- intent
- Intent
Intention reçue.
- Attributs
Remarques
Cette méthode est appelée lorsque BroadcastReceiver reçoit une diffusion d’intention. Pendant ce temps, vous pouvez utiliser les autres méthodes de BroadcastReceiver pour afficher/modifier les valeurs de résultat actuelles. Cette méthode est toujours appelée dans le thread principal de son processus, sauf si vous avez explicitement demandé qu’elle soit planifiée sur un autre thread à l’aide android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)
de . Quand il s’exécute sur le thread principal, vous ne devez jamais effectuer d’opérations de longue durée dans celui-ci (il y a un délai d’expiration de 10 secondes que le système autorise avant d’envisager que le récepteur soit bloqué et qu’un candidat soit tué). Vous ne pouvez pas lancer une boîte de dialogue contextuelle dans votre implémentation de onReceive().
<b>Si ce BroadcastReceiver a été lancé via un < récepteur> balise, puis l’objet n’est plus actif après le retour de cette fonction.</b> Cela signifie que vous ne devez pas effectuer d’opérations qui retournent un résultat de manière asynchrone. Si vous avez besoin d’effectuer un travail en arrière-plan de suivi, planifiez une android.app.job.JobService
opération avec android.app.job.JobScheduler
.
Si vous souhaitez interagir avec un service déjà en cours d’exécution et précédemment lié à l’aide android.content.Context#bindService(Intent, ServiceConnection, int) bindService()
, vous pouvez utiliser #peekService
.
Les filtres d’intention utilisés dans android.content.Context#registerReceiver
et dans les manifestes d’application ne sont <>pas<> garantis comme exclusifs. Il s’agit d’indicateurs au système d’exploitation sur la façon de trouver des destinataires appropriés. Il est possible que les expéditeurs forcent la remise à des destinataires spécifiques, en contournant la résolution de filtre. Pour cette raison, #onReceive(Context, Intent) onReceive()
les implémentations doivent répondre uniquement aux actions connues, en ignorant les intentions inattendues qu’elles peuvent recevoir.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.