Bind 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
の複数のメソッドによって返される値を列挙します。 Bind
この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。
[System.Flags]
public enum Bind
[<System.Flags>]
type Bind =
- 継承
-
Bind
- 属性
フィールド
| 名前 | 値 | 説明 |
|---|---|---|
| ExternalService | -2147483648 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: バインドされるサービスは、分離された外部サービスです。 これにより、サービスが宣言されているパッケージではなく、呼び出し元アプリケーションのパッケージにサービスがバインドされます。 このフラグを使用する場合、バインドされるサービスのコードは、呼び出し元のアプリケーションのパッケージ名とユーザー ID で実行されます。 ただし、サービスは分離されたプロセスである必要があるため、アプリケーションのデータに直接アクセスすることはできません。 このフラグの目的は、アプリケーションがサービスを提供するアプリケーションではなく、サービスを使用してアプリに属性付けされたサービスを提供できるようにすることです。 このフラグは BindServiceFlags と互換性がありません。 BindServiceFlags を使用する必要がある場合は、代わりに BIND_EXTERNAL_SERVICE_LONG を使用する必要があります。 |
| None | 0 | バインド フラグが設定されていないことを指定します。 |
| AutoCreate | 1 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: バインドが存在する限り、サービスを自動的に作成します。 これによりサービスが作成されますが、Service.onStartCommand(Intent, int, int) メソッドは、startService(Intent) の明示的な呼び出しによってのみ呼び出されることに注意してください。 ただし、それなしでも、サービスの作成中にサービス オブジェクトにアクセスできます。 Build.VERSION_CODESする前に注意してください。ICE_CREAM_SANDWICH、このフラグを指定しないと、システムがターゲット サービスのプロセスをどの程度重要と見なしているかにも影響します。 設定すると、サービスからのバインドによって発生する唯一の方法でした。この場合、そのアクティビティがフォアグラウンドにある場合にのみ重要になります。 この動作を実現するには、新しいフラグBIND_ADJUST_WITH_ACTIVITY明示的に指定する必要があります。 互換性のために、BIND_AUTO_CREATEを指定しない古いアプリケーションでは、同じ結果を得るためにフラグが自動的にBIND_WAIVE_PRIORITYされ、BIND_ADJUST_WITH_ACTIVITY設定されます。 |
| DebugUnbind | 2 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: バインド解除の呼び出しが一致しない場合のデバッグ ヘルプが含まれます。 このフラグを設定すると、次の unbindService(ServiceConnection) 呼び出しの呼び出し履歴が保持され、後で不適切なバインド解除呼び出しが行われた場合に出力されます。 これを行うには、アプリの有効期間中に作成されたバインディングに関する情報を保持する必要があります。その結果、リークが発生します。これはデバッグにのみ使用する必要があります。 |
| NotForeground | 4 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: このバインディングでターゲット サービスのプロセスをフォアグラウンド スケジューリング優先度に上げないでください。 クライアントと少なくとも同じメモリ優先度に引き上げられます (クライアントが強制終了できない状況ではプロセスが強制終了されないようにします)。ただし、CPU スケジューリングの目的では、バックグラウンドで残される可能性があります。 これは、バインディング クライアントがフォアグラウンド プロセスであり、ターゲット サービスがバックグラウンド プロセスにある状況にのみ影響します。 |
| AboveClient | 8 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: このサービスへのクライアント アプリケーション バインドでは、サービスがアプリ自体よりも重要であると見なされることを示します。 設定すると、プラットフォームは、バインドされているサービスを強制終了する前に、メモリ不足のキラーがアプリを強制終了しようとしますが、これは保証されません。 |
| AllowOomManagement | 16 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: バインドされたサービスをホストするプロセスが通常のメモリ管理を通過できるようにします。 これは実行中のサービスのように扱われ、メモリが不足している場合や他の気まぐれな場合にシステムがプロセスを (一時的に) 消去し、長時間実行されている場合は強制終了 (および再起動) する候補にすることをより積極的に行うことができます。 |
| WaivePriority | 32 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: ターゲット サービスのホスティング プロセスのスケジュールまたはメモリ管理の優先順位には影響しません。 バックグラウンドでの通常のアプリケーション プロセスと同様に、バックグラウンドの LRU リストでサービスのプロセスを管理できるようにします。 |
| Important | 64 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: このサービスはクライアントにとって非常に重要であるため、クライアントが存在する場合はフォアグラウンド プロセス レベルに移動する必要があります。 通常、プロセスは、クライアントがフォアグラウンドにある場合でも、クライアントによってのみ可視性レベルに上げられます。 |
| AdjustWithActivity | 128 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: アクティビティからのバインドの場合、クライアント プロセスの全体的な重要度が影響を受ける量を減らすために別のフラグを使用するかどうかに関係なく、アクティビティがユーザーに表示されるかどうかに基づいて、ターゲット サービスのプロセスの重要度を上げることを許可します。 |
| NotPerceptible | 256 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: 表示可能なアプリまたはユーザーが認識できるアプリからのバインドの場合は、ターゲット サービスの重要度を認識可能なレベル以下に下げます。 これにより、システムはバインドされたプロセスをメモリから (一時的に) 消去して、ユーザーが認識できるより重要なプロセスの領域を作ることができます。 |
| AllowActivityStarts | 512 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: 表示されているアプリからのバインドの場合、バインドされたサービスはバックグラウンドからアクティビティを開始できます。 これは、SDK バージョンがBuild.VERSION_CODES前の既定の動作でした。UPSIDE_DOWN_CAKE. その後、バインド時にこのフラグが指定されていない限り、既定の動作が変更され、バインドされたサービスがバックグラウンド アクティビティを開始できないように変更されました。ただし、アプリにバインドされているアプリがフォアグラウンドにある場合でも、バックグラウンド アクティビティを開始できません。 |
| IncludeCapabilities | 4096 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) のフラグ: アクティビティやフォアグラウンド サービスなどのフォアグラウンド状態のために特定の機能を持つアプリからのバインドの場合、このフラグを使用すると、必要なアクセス許可を持っている限り、バインドされたアプリは同じ機能を取得できます。 上位アプリとそのターゲット SDK バージョンからのバインドがBuild.VERSION_CODES以上の場合。R では、アプリで BIND_INCLUDE_CAPABILITIES フラグを明示的に使用してすべての機能をサービスに渡す必要があるため、他のアプリは、場所、カメラ、マイクなどの使用中のアクセス権をバックグラウンドから持つことができます。 トップ アプリとそのターゲット SDK バージョンからのバインドがBuild.VERSION_CODES未満の場合。R、BIND_INCLUDE_CAPABILITIESは暗黙的です。 |
| SharedIsolatedProcess | 8192 | bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection) のフラグ: サービスを共有分離プロセスにバインドします。 このフラグを指定すると、1 つの共有分離プロセスで複数の分離サービスを実行できます。 分離された共有プロセス インスタンスは、bindIsolatedService(Intent,int,String,Executor,ServiceConnection) の instanceName パラメーターによって識別されます。 同じ instanceName で bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection) を呼び出すと、分離されたサービスが同じ共有分離プロセスに併配置されます。 共有分離プロセスのスコープは呼び出し元アプリに設定されることに注意してください。一度作成すると、呼び出し元のアプリのみが、分離された追加のサービスを共有プロセスにバインドできます。 ただし、サービス自体は異なる API から取得できるため、ベンダーが異なる場合があります。 R.attr.allowSharedIsolatedProcess 属性を true に設定したサービスのみが、共有分離プロセスにバインドできます。 |
| PackageIsolatedProcess | 16384 | bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection) のフラグ: サービスを共有分離プロセスにバインドしますが、同じプロセス名を宣言する同じパッケージの他の分離されたサービスとのみバインドします。 このフラグを指定すると、同じパッケージで定義された複数の分離されたサービスを、1 つの共有分離プロセスで実行できます。 このフラグは既定のアプリケーション プロセスでは機能しないため、この共有分離プロセスを指定する必要があります。 このフラグは、同じ共有分離プロセス内の同じパッケージからのバインド サービスのみを許可するため、BIND_SHARED_ISOLATED_PROCESSとは異なります。 これは、共有パッケージ分離プロセスがグローバルであり、潜在的な各呼び出し元アプリにスコープが設定されていないことも意味します。 分離された共有プロセス インスタンスは、サービスによって定義された "android:process" 属性によって識別されます。 このフラグは、この属性が設定されていないと使用できません。 定数値: 16384 (0x00004000) |
注釈
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。