次の方法で共有


BroadcastReceiver.OnReceive(Context, Intent) メソッド

定義

このメソッドは、BroadcastReceiver がインテント ブロードキャストを受信するときに呼び出されます。

[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

パラメーター

context
Context

受信側が実行されているコンテキスト。

intent
Intent

受信する意図。

属性

注釈

このメソッドは、BroadcastReceiver がインテント ブロードキャストを受信するときに呼び出されます。 この間、BroadcastReceiver の他のメソッドを使用して、現在の結果値を表示または変更できます。 このメソッドは、プロセスのメイン スレッド内で常に呼び出されます。ただし、別のスレッド android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)でスケジュールするように明示的に要求した場合を除きます。 メイン スレッドで実行する場合は、実行時間の長い操作を実行しないでください (受信側がブロックされ、強制終了される候補を考慮する前に、システムで許可されるタイムアウトは 10 秒です)。 onReceive() の実装でポップアップ ダイアログを起動することはできません。

<b>この BroadcastReceiver が < を介して起動された場合receiver>タグを使用すると、この関数から戻った後、オブジェクトは有効ではなくなります。</b> これは、結果を返す操作を非同期的に実行しないことを意味します。 後続のバックグラウンド作業を実行する必要がある場合は、次のようにスケジュールしますandroid.app.job.JobServiceandroid.app.job.JobScheduler

既に実行中で、以前にバインドされているサービスと対話する場合は、次を使用android.content.Context#bindService(Intent, ServiceConnection, int) bindService()#peekServiceできます。

アプリケーション マニフェスト内およびアプリケーション マニフェストでandroid.content.Context#registerReceiver使用されるインテント フィルターは、<>排他的であることが保証されません<>。 これらは、適切な受信者を見つける方法に関するオペレーティング システムへのヒントです。 送信者は、フィルター解決をバイパスして、特定の受信者への配信を強制できます。 このため、 #onReceive(Context, Intent) onReceive() 実装は既知のアクションにのみ応答し、予期しない意図を無視する必要があります。

の Java ドキュメントandroid.content.BroadcastReceiver.onReceive(android.content.Context, android.content.Intent)

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象