Bind Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Enumera los valores devueltos por varios métodos de Bind
Esta enumeración admite una combinación bit a bit de sus valores de miembro.
[System.Flags]
public enum Bind
[<System.Flags>]
type Bind =
- Herencia
-
Bind
- Atributos
Campos
| Nombre | Valor | Description |
|---|---|---|
| ExternalService | -2147483648 | Marca de bindService(Intent, BindServiceFlags, Executor, ServiceConnection): el servicio que se enlaza es un servicio externo aislado. Esto enlaza el servicio al paquete de la aplicación que realiza la llamada, en lugar del paquete en el que se declara el servicio. Al usar esta marca, el código del servicio que se enlaza se ejecutará bajo el nombre de paquete y el identificador de usuario de la aplicación que realiza la llamada. Dado que el servicio debe ser un proceso aislado, no tendrá acceso directo a los datos de la aplicación, sin embargo. El propósito de esta marca es permitir que las aplicaciones proporcionen servicios que se atribuyen a la aplicación mediante el servicio, en lugar de la aplicación que proporciona el servicio. Esta marca NO es compatible con BindServiceFlags . Si necesita usar BindServiceFlags, debe usar BIND_EXTERNAL_SERVICE_LONG en su lugar. |
| None | 0 | Especifica que no se establecen marcas de enlace. |
| AutoCreate | 1 | Marca para bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : crea automáticamente el servicio siempre y cuando exista el enlace. Tenga en cuenta que, aunque esto creará el servicio, solo se llamará al método Service.onStartCommand(Intent, int, int) debido a una llamada explícita a startService(Intent). Aunque sin eso, esto le proporciona acceso al objeto de servicio mientras se crea el servicio. Tenga en cuenta que antes de Build.VERSION_CODES. ICE_CREAM_SANDWICH , no proporcionar esta marca también afectaría lo importante que el sistema considera que es el proceso del servicio de destino. Cuando se establece, la única manera de que se genere fue enlazando desde un servicio en cuyo caso solo será importante cuando esa actividad se encuentra en primer plano. Ahora para lograr este comportamiento, debe proporcionar explícitamente la nueva marca BIND_ADJUST_WITH_ACTIVITY . Por motivos de compatibilidad, las aplicaciones antiguas que no especifican BIND_AUTO_CREATE tendrán automáticamente las marcas BIND_WAIVE_PRIORITY y BIND_ADJUST_WITH_ACTIVITY establecer para ellas con el fin de lograr el mismo resultado. |
| DebugUnbind | 2 | Marca de bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : incluye la ayuda de depuración para llamadas no coincidentes a unbind. Cuando se establece esta marca, se conserva la pila de llamadas de la siguiente llamada unbindService(ServiceConnection), que se imprimirá si se realiza una llamada de desenlace incorrecta posterior. Tenga en cuenta que, al hacerlo, es necesario conservar información sobre el enlace que se realizó durante la vigencia de la aplicación, lo que da lugar a una fuga; esto solo se debe usar para la depuración. |
| NotForeground | 4 | Marca para bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : no permita que este enlace genere el proceso del servicio de destino a la prioridad de programación en primer plano. Todavía se elevará a al menos la misma prioridad de memoria que el cliente (de modo que su proceso no se pueda matar en ninguna situación en la que el cliente no se pueda matar), pero con fines de programación de CPU puede dejarse en segundo plano. Esto solo tiene un impacto en la situación en la que el cliente de enlace es un proceso en primer plano y el servicio de destino está en un proceso en segundo plano. |
| AboveClient | 8 | Marca de bindService(Intent, BindServiceFlags, Executor, ServiceConnection): indica que el enlace de la aplicación cliente a este servicio considera que el servicio es más importante que la propia aplicación. Cuando se establece, la plataforma intentará que el asesino de memoria elimine la aplicación antes de que elimine el servicio al que está enlazado, aunque esto no se garantiza que sea el caso. |
| AllowOomManagement | 16 | Marca de bindService(Intent, BindServiceFlags, Executor, ServiceConnection): permite que el proceso que hospeda el servicio enlazado pase por su administración de memoria normal. Se tratará más como un servicio en ejecución, lo que permite al sistema eliminar (temporalmente) el proceso si es bajo en la memoria o para algún otro látigo que puede tener, y ser más agresivo al hacer que un candidato se elimine (y se reinicie) si se ejecuta durante mucho tiempo. |
| WaivePriority | 32 | Marca para bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : no afecta a la prioridad de programación o administración de memoria del proceso de hospedaje del servicio de destino. Permite que el proceso del servicio se administre en la lista LRU en segundo plano como un proceso de aplicación normal en segundo plano. |
| Important | 64 | Marca para bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : este servicio es muy importante para el cliente, por lo que debe incorporarse al nivel de proceso en primer plano cuando el cliente es. Normalmente, un proceso solo se puede elevar al nivel de visibilidad por parte de un cliente, incluso si ese cliente está en primer plano. |
| AdjustWithActivity | 128 | Marca para bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : si se enlaza desde una actividad, permita que se genere la importancia del proceso del servicio de destino en función de si la actividad es visible para el usuario, independientemente de si se usa otra marca para reducir la cantidad que se usa el proceso de cliente para afectarlo. |
| NotPerceptible | 256 | Marca para bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : si el enlace desde una aplicación visible o perceptible por el usuario, reduzca la importancia del servicio de destino por debajo del nivel perceptible. Esto permite que el sistema elimine (temporalmente) el proceso enlazado de la memoria para hacer espacio para procesos más importantes que se aprecian por el usuario. |
| AllowActivityStarts | 512 | Marca para bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : si se enlaza desde una aplicación visible, el servicio enlazado puede iniciar una actividad desde segundo plano. Este era el comportamiento predeterminado antes de que la versión del SDK Build.VERSION_CODES. UPSIDE_DOWN_CAKE . Desde entonces, el comportamiento predeterminado cambió para no permitir que el servicio enlazado inicie una actividad en segundo plano incluso si la aplicación enlazada a ella está en primer plano, a menos que se especifique esta marca al enlazar. |
| IncludeCapabilities | 4096 | Marca para bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : si el enlace desde una aplicación que tiene funcionalidades específicas debido a su estado en primer plano, como una actividad o un servicio en primer plano, esta marca permitirá que la aplicación enlazada obtenga las mismas funcionalidades, siempre y cuando también tenga los permisos necesarios. Si el enlace desde una aplicación superior y su versión del SDK de destino está en Build.VERSION_CODES o superior. R , la aplicación debe usar explícitamente BIND_INCLUDE_CAPABILITIES marca para pasar todas las funcionalidades al servicio para que la otra aplicación pueda tener acceso mientras está en uso, como la ubicación, la cámara, el micrófono desde el fondo. Si el enlace desde una aplicación superior y su versión del SDK de destino se encuentra a continuación Build.VERSION_CODES. R , BIND_INCLUDE_CAPABILITIES es implícito. |
| SharedIsolatedProcess | 8192 | Marca de bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection) : enlace el servicio en un proceso aislado compartido. La especificación de esta marca permite que varios servicios aislados se ejecuten en un único proceso aislado compartido. La instancia de proceso aislada compartida se identifica mediante el parámetro instanceName en bindIsolatedService(Intent,int,String,Executor,ServiceConnection). Las llamadas posteriores a bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection) con el mismo instanceName harán que el servicio aislado se encuentre en el mismo proceso aislado compartido. Tenga en cuenta que el proceso aislado compartido está en el ámbito de la aplicación que realiza la llamada; Una vez creada, solo la aplicación que realiza la llamada puede enlazar servicios aislados adicionales al proceso compartido. Sin embargo, los propios servicios pueden provenir de diferentes APK y, por tanto, de diferentes proveedores. Solo los servicios que establecen el atributo R.attr.allowSharedIsolatedProcess en true pueden enlazarse a un proceso aislado compartido. |
| PackageIsolatedProcess | 16384 | Marca para bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection): enlace el servicio en un proceso aislado compartido, pero solo con otros servicios aislados del mismo paquete que declaran el mismo nombre de proceso. La especificación de esta marca permite que varios servicios aislados definidos en el mismo paquete se ejecuten en un único proceso aislado compartido. Este proceso aislado compartido debe especificarse, ya que esta marca no funcionará con el proceso de aplicación predeterminado. Esta marca es diferente de BIND_SHARED_ISOLATED_PROCESS, ya que solo permite enlazar servicios del mismo paquete en el mismo proceso aislado compartido. Esto también significa que el proceso aislado del paquete compartido es global y no está en el ámbito de cada aplicación de llamada potencial. La instancia de proceso aislada compartida se identifica mediante el atributo "android:process" definido por el servicio. Esta marca no se puede usar sin este conjunto de atributos. Valor constante: 16384 (0x00004000) |
Comentarios
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.