BroadcastReceiver.OnReceive(Context, Intent) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このメソッドは、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.JobService
android.app.job.JobScheduler
。
既に実行中で、以前にバインドされているサービスと対話する場合は、次を使用android.content.Context#bindService(Intent, ServiceConnection, int) bindService()
#peekService
できます。
アプリケーション マニフェスト内およびアプリケーション マニフェストでandroid.content.Context#registerReceiver
使用されるインテント フィルターは、<>排他的であることが保証されません<>。 これらは、適切な受信者を見つける方法に関するオペレーティング システムへのヒントです。 送信者は、フィルター解決をバイパスして、特定の受信者への配信を強制できます。 このため、 #onReceive(Context, Intent) onReceive()
実装は既知のアクションにのみ応答し、予期しない意図を無視する必要があります。
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。