BroadcastReceiver.OnReceive(Context, Intent) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Questo metodo viene chiamato quando broadcastReceiver riceve una trasmissione intent.
[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
Parametri
- context
- Context
Contesto in cui è in esecuzione il ricevitore.
- intent
- Intent
Finalità ricevuta.
- Attributi
Commenti
Questo metodo viene chiamato quando broadcastReceiver riceve una trasmissione intent. Durante questo periodo è possibile usare gli altri metodi in BroadcastReceiver per visualizzare/modificare i valori dei risultati correnti. Questo metodo viene sempre chiamato all'interno del thread principale del relativo processo, a meno che non venga richiesto esplicitamente di pianificarlo in un thread diverso usando android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)
. Quando viene eseguito sul thread principale, non è mai consigliabile eseguire operazioni a esecuzione prolungata in esso (è presente un timeout di 10 secondi che il sistema consente prima di considerare il ricevitore bloccato e un candidato da uccidere). Non è possibile avviare una finestra di dialogo popup nell'implementazione di onReceive().
<b>Se questo BroadcastReceiver è stato lanciato tramite un < ricevitore> tag, quindi l'oggetto non è più attivo dopo la restituzione da questa funzione.</b> Ciò significa che non è consigliabile eseguire alcuna operazione che restituisca un risultato in modo asincrono. Se è necessario eseguire operazioni in background di completamento, pianificare un android.app.job.JobService
oggetto con android.app.job.JobScheduler
.
Se si vuole interagire con un servizio già in esecuzione e associato in precedenza tramite android.content.Context#bindService(Intent, ServiceConnection, int) bindService()
, è possibile usare #peekService
.
I filtri finalità usati in android.content.Context#registerReceiver
e nei manifesti dell'applicazione sono <em>not</em> garantiti per essere esclusivi. Sono suggerimenti per il sistema operativo su come trovare destinatari adatti. È possibile che i mittenti forzano il recapito a destinatari specifici, ignorando la risoluzione dei filtri. Per questo motivo, #onReceive(Context, Intent) onReceive()
le implementazioni devono rispondere solo alle azioni note, ignorando eventuali finalità impreviste che potrebbero ricevere.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.