ContextWrapper.ApplicationContext プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のプロセスの単一のグローバル Application オブジェクトのコンテキストを返します。
public override Android.Content.Context? ApplicationContext { [Android.Runtime.Register("getApplicationContext", "()Landroid/content/Context;", "GetGetApplicationContextHandler")] get; }
[<get: Android.Runtime.Register("getApplicationContext", "()Landroid/content/Context;", "GetGetApplicationContextHandler")>]
member this.ApplicationContext : Android.Content.Context
プロパティ値
現在のプロセスの単一のグローバル Application オブジェクトのコンテキストを返します。 これは通常、現在のコンポーネントではなくプロセスの有効期間に関連付けられた、現在のコンテキストとは別のライフサイクルを持つコンテキストが必要な場合にのみ使用する必要があります。 たとえば、registerReceiver(BroadcastReceiver,IntentFilter) とやり取りする方法を考えてみましょう。アクティビティ コンテキストから使用した場合、受信側はそのアクティビティ内に登録されます。 つまり、アクティビティが破棄される前に登録を解除する必要があります。実際にそうしないと、アクティビティが削除され、エラーがログに記録されるため、フレームワークによってリークされた登録がクリーンアップされます。 したがって、アクティビティ コンテキストを使用して静的なレシーバー (アクティビティ インスタンスに関連付けられていないプロセスに対してグローバル) を登録すると、その登録は、使用したアクティビティが破棄された時点で削除されます。 ここで返されたコンテキストから使用した場合、受信側はアプリケーションに関連付けられているグローバル状態に登録されます。 そのため、登録が解除されることはありません。 これは、受信側が特定のコンポーネントではなく静的データに関連付けられている場合に必要です。 ただし、ApplicationContext を他の場所で使用すると、登録解除やバインド解除などを忘れた場合に、重大なリークにつながる可能性があります。
- 属性
注釈
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。