Freigeben über


BroadcastReceiver.OnReceive(Context, Intent) Methode

Definition

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.

Java-Dokumentation für android.content.BroadcastReceiver.onReceive(android.content.Context, android.content.Intent).

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.

Gilt für: