BroadcastReceiver.OnReceive(Context, Intent) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Diese Methode wird aufgerufen, wenn der BroadcastReceiver eine Intent-Übertragung empfängt.
[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
Parameter
- context
- Context
Der Kontext, in dem der Empfänger ausgeführt wird.
- intent
- Intent
Die Empfangene Absicht.
- Attribute
Hinweise
Diese Methode wird aufgerufen, wenn der BroadcastReceiver eine Intent-Übertragung empfängt. Während dieser Zeit können Sie die anderen Methoden von BroadcastReceiver verwenden, um die aktuellen Ergebniswerte anzuzeigen/zu ändern. Diese Methode wird immer innerhalb des Hauptthreads des Prozesses aufgerufen, es sei denn, Sie haben explizit aufgefordert, für einen anderen Thread geplant zu werden.android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)
Wenn sie im Hauptthread ausgeführt wird, sollten Sie niemals lange ausgeführte Vorgänge ausführen (es gibt ein Timeout von 10 Sekunden, das das System zulässt, bevor der Empfänger blockiert und ein Kandidat getötet werden kann). Sie können in Ihrer Implementierung von onReceive() kein Popupdialogfeld starten.
<b>Wenn dieser BroadcastReceiver über ein < gestartet wurde Receiver> tag, then the object is no longer alive after returning from this function.</b> Dies bedeutet, dass Sie keine Vorgänge ausführen sollten, die ein Ergebnis asynchron an Sie zurückgeben. Wenn Sie eine Nachverfolgung der Hintergrundarbeiten durchführen müssen, planen Sie ein android.app.job.JobService
Mit android.app.job.JobScheduler
.
Wenn Sie mit einem Bereits ausgeführten und zuvor gebundenen android.content.Context#bindService(Intent, ServiceConnection, int) bindService()
Dienst interagieren möchten, können Sie verwenden #peekService
.
Die in android.content.Context#registerReceiver
und in Anwendungsmanifesten verwendeten Intent-Filter sind <nicht></em> garantiert exklusiv. Sie sind Hinweise auf das Betriebssystem, wie geeignete Empfänger gefunden werden. Es ist möglich, dass Absender die Zustellung an bestimmte Empfänger erzwingen und die Filterauflösung umgehen. Aus diesem Grund #onReceive(Context, Intent) onReceive()
sollten Implementierungen nur auf bekannte Aktionen reagieren und unerwartete Absichten ignorieren, die sie erhalten können.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.