Service.StartForeground Método
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í.
Sobrecargas
| Nombre | Description |
|---|---|
| StartForeground(Int32, Notification) |
Si el servicio se inicia (se ejecuta a través |
| StartForeground(Int32, Notification, ForegroundService) |
Una versión sobrecargada de |
StartForeground(Int32, Notification)
Si el servicio se inicia (se ejecuta a través Context#startService(Intent)de ), también hace que este servicio se ejecute en primer plano, proporcionando la notificación en curso que se mostrará al usuario mientras está en este estado.
[Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;)V", "")]
public void StartForeground(int id, Android.App.Notification? notification);
[<Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;)V", "")>]
member this.StartForeground : int * Android.App.Notification -> unit
Parámetros
- id
- Int32
El identificador de esta notificación según NotificationManager#notify(int, Notification)
NotificationManager.notify(int, Notification); no debe ser 0.
- notification
- Notification
Notificación que se va a mostrar.
- Atributos
Comentarios
Si se inicia el servicio (que se ejecuta a través de Context.startService(Intent)), haga que este servicio se ejecute en primer plano y proporcione la notificación en curso que se mostrará al usuario mientras está en este estado. De forma predeterminada, los servicios iniciados son en segundo plano, lo que significa que su proceso no se asignará programación de CPU en primer plano (a menos que algo más en ese proceso sea en primer plano) y, si el sistema necesita matarlos para reclamar más memoria (por ejemplo, para mostrar una página grande en un explorador web), se pueden matar sin demasiado daño. Usa startForeground(int, Notification) si matar el servicio sería perjudicial para el usuario, por ejemplo, si el servicio está realizando reproducción de música en segundo plano, por lo que el usuario observaría si su música deja de reproducirse. Tenga en cuenta que al llamar a este método no se coloca el servicio en el propio estado iniciado, aunque el nombre parezca así. Primero debe llamar a startService(Intent) para indicar al sistema que debe mantener el servicio en ejecución y, a continuación, usar este método para indicarle que siga funcionando más difícil.
Aplicaciones destinadas a Build.VERSION_CODES de API. P o posterior debe solicitar el permiso Manifest.permission.FOREGROUND_SERVICE para poder usar esta API.
Aplicaciones compiladas con la versión del SDK Build.VERSION_CODES. Q o posterior puede especificar los tipos de servicio en primer plano mediante el atributo R.attr.foregroundServiceType en el elemento de servicio del archivo de manifiesto. El valor del atributo R.attr.foregroundServiceType puede ser varias marcas ORed juntas.
Nota: A partir de la versión del SDK Build.VERSION_CODES. S, las aplicaciones destinadas a la versión del SDK Build.VERSION_CODES. No se permite que S o superior inicien los servicios en primer plano desde segundo plano. Consulte Cambios de comportamiento: Aplicaciones destinadas a Android 12 para obtener más detalles. Nota: A partir de la versión del SDK Build.VERSION_CODES. UPSIDE_DOWN_CAKE, las aplicaciones destinadas a la versión del SDK Build.VERSION_CODES. UPSIDE_DOWN_CAKE o superior no pueden iniciar servicios en primer plano sin especificar un tipo de servicio en primer plano válido en el atributo de manifiesto R.attr.foregroundServiceType. Consulte Cambios de comportamiento: Aplicaciones destinadas a Android 14 para obtener más información.
Consulte también:
Throws: ForegroundServiceStartNotAllowedException Si la API de destino de la aplicación está Build.VERSION_CODES. S o posterior, y el servicio está restringido a convertirse en servicio en primer plano debido a la restricción en segundo plano.
Throws: InvalidForegroundServiceTypeException Si la API de destino de la aplicación está Build.VERSION_CODES. UPSIDE_DOWN_CAKE o posterior, y el atributo de manifiesto R.attr.foregroundServiceType se establece en tipos no válidos (es decir, ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE).
Throws: MissingForegroundServiceTypeException Si la API de destino de la aplicación está Build.VERSION_CODES. UPSIDE_DOWN_CAKE o posterior, y el atributo de manifiesto R.attr.foregroundServiceType no está establecido.
Inicia: SecurityException Si la API de destino de la aplicación está Build.VERSION_CODES. UPSIDE_DOWN_CAKE o posterior y no tiene permiso para iniciar el servicio en primer plano con el tipo especificado en el atributo de manifiesto R.attr.foregroundServiceType.
Referencia de Android para android.app.Service.startForeground.
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.
Se aplica a
StartForeground(Int32, Notification, ForegroundService)
Una versión sobrecargada de #startForeground(int, Notification) con el parámetro foregroundServiceType adicional.
[Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;I)V", "", ApiSince=29)]
public void StartForeground(int id, Android.App.Notification notification, Android.Content.PM.ForegroundService foregroundServiceType);
[<Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;I)V", "", ApiSince=29)>]
member this.StartForeground : int * Android.App.Notification * Android.Content.PM.ForegroundService -> unit
Parámetros
- id
- Int32
El identificador de esta notificación según NotificationManager#notify(int, Notification)
NotificationManager.notify(int, Notification); no debe ser 0.
- notification
- Notification
Notificación que se va a mostrar.
- foregroundServiceType
- ForegroundService
debe ser una marca de subconjunto de marcas de atributo android.R.attr#foregroundServiceType de manifiesto; no debe ser ServiceInfo#FOREGROUND_SERVICE_TYPE_NONE.
- Atributos
Comentarios
Una versión sobrecargada de startForeground(int,Notification) con el parámetro foregroundServiceType adicional. Aplicaciones compiladas con la versión del SDK Build.VERSION_CODES. Q o posterior puede especificar los tipos de servicio en primer plano mediante el atributo R.attr.foregroundServiceType en el elemento de servicio del archivo de manifiesto. El valor del atributo R.attr.foregroundServiceType puede ser varias marcas ORed juntas.
El parámetro foregroundServiceType debe ser una marca de subconjunto de lo que se especifica en el atributo de manifiesto R.attr.foregroundServiceType, si no es así, se produce una excepción IllegalArgumentException. Especifique el parámetro foregroundServiceType como ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST para usar todas las marcas especificadas en el atributo de manifiesto foregroundServiceType.
Nota: A partir de la versión del SDK Build.VERSION_CODES. S, las aplicaciones destinadas a la versión del SDK Build.VERSION_CODES. No se permite que S o superior inicien los servicios en primer plano desde segundo plano. Consulte Cambios de comportamiento: Aplicaciones destinadas a Android 12 para obtener más detalles. Nota: A partir de la versión del SDK Build.VERSION_CODES. UPSIDE_DOWN_CAKE, las aplicaciones destinadas a la versión del SDK Build.VERSION_CODES. UPSIDE_DOWN_CAKE o superior no pueden iniciar servicios en primer plano sin especificar un tipo de servicio en primer plano válido en el atributo de manifiesto R.attr.foregroundServiceType y el parámetro foregroundServiceType aquí no debe ser el ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE. Consulte Cambios de comportamiento: Aplicaciones destinadas a Android 14 para obtener más información.
Consulte también:
Throws: ForegroundServiceStartNotAllowedException Si la API de destino de la aplicación está Build.VERSION_CODES. S o posterior, y el servicio está restringido a convertirse en servicio en primer plano debido a la restricción en segundo plano.
Throws: InvalidForegroundServiceTypeException Si la API de destino de la aplicación está Build.VERSION_CODES. UPSIDE_DOWN_CAKE o posterior, y el atributo de manifiesto R.attr.foregroundServiceType o param foregroundServiceType se establece en tipos no válidos(i.e.ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE).
Throws: MissingForegroundServiceTypeException Si la API de destino de la aplicación está Build.VERSION_CODES. UPSIDE_DOWN_CAKE o posterior, y el atributo de manifiesto R.attr.foregroundServiceType no está establecido y el parámetro foregroundServiceType se establece en ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST.
Throws: IllegalArgumentException si param foregroundServiceType no es subconjunto del atributo de manifiesto R.attr.foregroundServiceType.
Inicia: SecurityException Si la API de destino de la aplicación está Build.VERSION_CODES. UPSIDE_DOWN_CAKE o posterior y no tiene permiso para iniciar el servicio en primer plano con el tipo especificado en foregroundServiceType. R.attr.foregroundServiceType.
Referencia de Android para android.app.Service.startForeground.
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.